Решение, которое я нашел, включает в себя программу под названием 'detach', написанную Анноном Инглорионом и загружаемую с его веб-сайта
. После компиляции ее можно использовать в сценарии следующим образом:
$ ./detach -p debug.pid openocd <args> # detach openocd
$ gdb <args> # run gdb
$ kill -9 $(cat debug.pid) # end openocd process
$ rm debug.pid # remove file containing process id
Эта первая строка создает новый процесс (запускающий openocd) и сохраняет идентификатор процесса в файле (debug.pid) для последующего использования. Это предотвращает проблемы с поиском pid, как указано в ответе Оливера. При выходе из следующей блокирующей программы (gdb) файл, хранящий pid, используется для непосредственного уничтожения отсоединенного процесса.
Для меня это отлично работает с отречением
command & disown
kstart5
из KDE, доступно в пакете kde -cli -инструменты могут помочь
kstart5 my-command &
Мы также можем управлять несколькими аспектами окна x, если мы используем графический интерфейс