Я намагаюся від'єднати процес від скрипту bash, щоб SIGINT не пересилався до процесу, коли я виходжу з сценарію.
Я використовував disown
команду в терміналі безпосередньо, проте в bash, disown
не зупиняє пересилання SIGINT. Мета цього сценарію - запустити openocd, а потім gdb з одним викликом. Оскільки сценарій ніколи не виходить (він працює з gdb), SIGINT все ще передається з gdb в openocd, що є проблемою, оскільки SIGINT використовується як команда зупинки в gdb.
У терміналі це виглядатиме приблизно так:
$ openocd & # run openocd demonized
$ disown $! # disown last pid
$ gdb # invoke GDB
при виклику на терміналі в цьому порядку SIGINT не передається від gdb до openocd. Однак якщо цей самий виклик був у скрипті bash, SIGINT передається.
Будь-яка допомога буде дуже вдячна.
ps ця проблема в OS X, але я намагаюся використовувати інструменти, які також є портативними для всіх інструментів Unix.
screen
?
nohup
не зовсім правильна відповідь. Вам слід додати псевдокод або приклад коду, щоб точніше показати те, що ви хочете.