Estou tentando desanexar um processo de um script bash para que o SIGINT não seja encaminhado para o processo quando eu sair do script.
Eu usei o disown
comando diretamente no terminal, no entanto, no bash, disown
não impede que o SIGINT seja encaminhado. O objetivo deste script é iniciar o openocd e depois o gdb com uma única chamada. Como o script nunca sai (está executando o gdb), o SIGINT ainda é encaminhado do gdb para o openocd, o que é um problema, pois o SIGINT é usado como o comando de parada no gdb.
No terminal, seria algo parecido com isto:
$ openocd & # run openocd demonized
$ disown $! # disown last pid
$ gdb # invoke GDB
quando invocado no terminal nesta ordem, o SIGINT não é passado do gdb para o openocd. No entanto, se essa mesma chamada estiver em um script bash, o SIGINT será passado.
Qualquer ajuda seria muito apreciada.
ps esse problema está no OS X, mas estou tentando usar ferramentas que também são portáveis para todas as ferramentas do Unix.
screen
?
nohup
não é a resposta certa. Você deve adicionar algum código de exemplo ou pseudocódigo para mostrar com mais precisão o que deseja.