Quando si utilizza il modulo di threading e la classe Thread(), non è stato possibile catturare SIGINT (Ctrl + C in console).Come posso catturare SIGINT nel threading del programma python?
Perché e cosa posso fare?
programma di test semplice:
#!/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()
Prova a colpire Ctrl-C - non succede nulla.
thread principale non ricevono SIGINT neanche. Altrimenti potrei semplicemente prenderlo e chiamare sys.exit (0). –
Sembra che io abbia torto. Il thread principale riceve SIGINT. Grazie! –
Ma non capisco perché sys.exit (0) non funzioni nel gestore di segnali. –