Sto provando a staccare un processo da uno script bash in modo che SIGINT non venga inoltrato al processo quando esco dallo script.
Ho usato direttamente il disown
comando nel terminale, tuttavia in bash, disown
non si ferma l'inoltro di SIGINT. Lo scopo di questo script è di avviare openocd e quindi gdb con una singola chiamata. Poiché lo script non esce mai (sta eseguendo gdb) SIGINT viene comunque inoltrato da gdb a openocd, il che è un problema poiché SIGINT è usato come comando halt in gdb.
Nel terminale sarebbe simile a questo:
$ openocd & # run openocd demonized
$ disown $! # disown last pid
$ gdb # invoke GDB
quando viene invocato sul terminale in questo ordine, SIGINT non viene passato da gdb a openocd. Tuttavia, se la stessa invocazione era in uno script bash, SIGINT viene passato.
Qualsiasi aiuto sarebbe molto apprezzato.
ps questo problema è in OS X ma sto cercando di usare strumenti che sono anche portatili per tutti gli strumenti Unix.
screen
?
nohup
non è proprio la risposta giusta. Dovresti aggiungere uno pseudocodice o un codice di esempio per mostrare più precisamente ciò che desideri.