Sto cercando di scrivere un programma Python per testare un server scritto in C. Il programma Python lancia il server compilato utilizzando il modulo subprocess
:Uccidere quando si blocca madri in pitone
pid = subprocess.Popen(args.server_file_path).pid
Questo funziona bene, tuttavia se il programma python termina in modo imprevisto a causa di un errore, il processo spawn viene lasciato in esecuzione. Ho bisogno di un modo per assicurarmi che se il programma python si chiude inaspettatamente, anche il processo del server viene ucciso.
Alcuni dettagli:
- Linux o sistemi operativi OSX solo codice
- Server non può essere modificato in alcun modo
"a causa di un errore" - Che tipo di errore? – mgilson
Errori di rete, interrupt di tastiera, ecc. – charliehorse55
[supervisor] (http://supervisord.org/) è un demone di gestione dei processi open-source scritto in Python. Il codice sorgente potrebbe valere la pena dare un'occhiata se ne hai il tempo. –