Estoy tratando de separar un proceso de un script bash para que SIGINT no se reenvíe al proceso cuando salga del script.
He utilizado el disown
comando en la terminal directamente, sin embargo, en bash, disown
no impide que SIGINT se reenvíe. El propósito de este script es iniciar openocd y luego gdb con una sola invocación. Dado que el script nunca sale (está ejecutando gdb) SIGINT todavía se reenvía desde gdb a openocd, lo cual es un problema ya que SIGINT se usa como comando de detención en gdb.
En la terminal se vería así:
$ openocd & # run openocd demonized
$ disown $! # disown last pid
$ gdb # invoke GDB
cuando se invoca en la terminal en este orden, SIGINT no se pasa de gdb a openocd. Sin embargo, si esta misma invocación estaba en un script bash, se pasa el SIGINT.
Cualquier ayuda sería muy apreciada.
PD: este problema está en OS X, pero estoy tratando de usar herramientas que también son portátiles para todas las herramientas de Unix.
screen
?
nohup
No es la respuesta correcta. Debe agregar algún pseudocódigo o código de ejemplo para mostrar con mayor precisión lo que desea.