При использовании модуля потоковой передачи и класса Thread() SIGINT (Ctrl + C на консоли) не удалось поймать.Как я могу поймать SIGINT в потоковой программе python?
Почему и что делать?
Простая программа испытаний:
#!/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()
Попробуйте поражая Ctrl-C - ничего не происходит.
Главной нить не получают SIGINT либо. В противном случае я мог бы просто поймать его и вызвать sys.exit (0). –
Кажется, я ошибаюсь. Основная тема действительно получает SIGINT. Спасибо! –
Но я не понимаю, почему sys.exit (0) не работает в обработчике сигналов. –