Программа Python с потоком не может поймать CTRL + C

Я пишу сценарий Python, который должен запустить поток, который слушает сетевой сокет.

У меня возникли проблемы с его убийством с помощьюCtrl + C используя код ниже:

#!/usr/bin/python

import signal, sys, threading

THREADS = []

def handler(signal, frame):
    global THREADS
    print "Ctrl-C.... Exiting"
    for t in THREADS:
        t.alive = False
    sys.exit(0)

class thread(threading.Thread):
    def __init__(self):
        self.alive = True
        threading.Thread.__init__(self)


    def run(self):
        while self.alive:
            # do something
            pass

def main():
    global THREADS
    t = thread()
    t.start()
    THREADS.append(t)

if __name__ == '__main__':
    signal.signal(signal.SIGINT, handler)
    main()

Ценю любые советы о том, как ловитьCtrl + C и прекратить сценарий.

Ответы на вопрос(2)

Ваш ответ на вопрос