Я тестирую потоки Python со следующим script:
import threading
class FirstThread (threading.Thread):
def run (self):
while True:
print 'first'
class SecondThread (threading.Thread):
def run (self):
while True:
print 'second'
FirstThread().start()
SecondThread().start()
Это работает в Python 2.7 на Kubuntu 11.10. Ctrl + C не убьет его. Я также попытался добавить обработчик системных сигналов, но это не помогло:
import signal
import sys
def signal_handler(signal, frame):
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
Чтобы убить процесс, я убиваю его с помощью PID после отправки программы на задний план с помощью Ctrl + Z, который не игнорируется. Почему Ctrl + C игнорируется так настойчиво? Как я могу это решить?