Esigenze di base: Possiedo un demone Python che chiama un altro programma tramite os.system. Il mio desiderio è di essere in grado di gestire correttamente l'arresto del sistema o SIGTERM per consentire al programma richiamato di tornare e quindi di uscire.Come gestire e mantenere correttamente l'arresto del sistema (e SIGTERM) per completare il lavoro in Python?
Quello che ho già provato: Ho provato un approccio con il segnale:
import signal, time
def handler(signum = None, frame = None):
print 'Signal handler called with signal', signum
time.sleep(3)
#here check if process is done
print 'Wait done'
signal.signal(signal.SIGTERM , handler)
while True:
time.sleep(6)
L'utilizzo di time.sleep non sembra funzionare e la seconda di stampa non è mai chiamato.
Ho letto poche parole su atexit.register (gestore) anziché signal.signal (signal.SIGTERM, gestore) ma non viene chiamato nulla su kill.
Ho copiato il codice e ha funzionato bene. Quale versione di Python stai usando, ecc? –
Il tuo codice sembra funzionare. Qual è l'output/comportamento che stai ottenendo? –
Aspetta un secondo raccolgo quello che ti serve. – AsTeR