Al usar el módulo de subprocesamiento y la clase Thread(), SIGINT (Ctrl + C en la consola) no podría ser capturado.¿Cómo puedo detectar SIGINT en el programa de threading python?
¿Por qué y qué puedo hacer?
programa de prueba simple:
#!/usr/bin/env python
import threading
def test(suffix):
while True:
print "test", suffix
def main():
for i in (1, 2, 3, 4, 5):
threading.Thread(target=test, args=(i,)).start()
if __name__ == "__main__":
main()
Prueba presionando Ctrl-C - no pasa nada.
El hilo principal tampoco recibe SIGINT. De lo contrario, podría atraparlo y llamar a sys.exit (0). –
Parece que estoy equivocado. El hilo principal no recibe SIGINT. ¡Gracias! –
Pero no entiendo por qué sys.exit (0) no funciona en el controlador de señal. –