Ho provato a fare funzionare le cose in questo modo:Eseguire un programma in pitone, e lo hanno continuano a funzionare dopo lo script viene ucciso
subprocess.Popen(['nohup', 'my_command'],
stdout=open('/dev/null', 'w'),
stderr=open('logfile.log', 'a'))
Questo funziona se lo script genitore esce con grazia, ma se uccido la script (Ctrl-C), anche tutti i miei processi figli vengono uccisi. c'è un modo per evitarlo?
Le piattaforme a cui tengo sono OS X e Linux, utilizzando Python 2.6 e Python 2.7.
Se forzo, e poi uccido metà della forchetta (piuttosto che lasciarlo uscire), ucciderà il nuovo processo? – James
Ok, dopo ulteriori letture: questo richiede due volte una biforcazione per evitare di ricevere i segnali? Mi piacerebbe che il processo genitore rimanesse interattivo --- il suo compito è monitorare i processi che genera - il che non è possibile se deve rinnegare la shell. – James
Grazie! Ho aggiunto la mia implementazione alla tua risposta. – James