Necesidad básica: Tengo un demonio de Python que llama a otro programa a través de os.system. Mi deseo es poder manejar adecuadamente el apagado del sistema o SIGTERM para permitir que el programa llamado regrese y luego salga.¿Cómo manejar adecuadamente y retener el apagado del sistema (y SIGTERM) para terminar su trabajo en Python?
lo que ya he intentado: He intentado una aproximación utilizando la señal:
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)
El uso de time.sleep no parece funcionar y el segundo de impresión no se llama.
He leído algunas palabras sobre atexit.register (controlador) en lugar de signal.signal (signal.SIGTERM, handler) pero no se llama a matar.
He copiado tu código y funcionó bien. ¿Qué versión de python estás usando, etc.? –
Tu código parece funcionar. ¿Cuál es la salida/comportamiento que estás recibiendo? –
Espera unos segundos Recojo lo que necesitas. – AsTeR