Usiłuję odłączyć proces od skryptu bash, aby SIGINT nie był przekazywany do procesu po zamknięciu skryptu.
Użyłem disown
polecenia bezpośrednio w terminalu, jednak w bash disown
nie powstrzymuje SIGINT od przekazania. Celem tego skryptu jest uruchomienie openocd, a następnie gdb za pomocą pojedynczego wywołania. Ponieważ skrypt nigdy się nie kończy (działa z gdb), SIGINT jest nadal przekazywany z gdb do openocd, co stanowi problem, ponieważ SIGINT jest używany jako polecenie zatrzymania w gdb.
W terminalu wyglądałoby to mniej więcej tak:
$ openocd & # run openocd demonized
$ disown $! # disown last pid
$ gdb # invoke GDB
wywołany na terminalu w tej kolejności, SIGINT nie jest przekazywany z gdb do openocd. Jednak jeśli to samo wywołanie było w skrypcie bash, SIGINT jest przekazywany.
Każda pomoc byłaby bardzo mile widziana.
ps ten problem występuje w OS X, ale próbuję użyć narzędzi, które są również przenośne dla wszystkich narzędzi Uniksa.
screen
?
nohup
nie jest właściwą odpowiedzią. Powinieneś dodać pseudokod lub przykładowy kod, aby dokładniej pokazać, czego chcesz.