Catch Ctrl+C / SIGINT et de sortie multiprocesses gracieusement en python

Comment puis-je attraper un Ctrl+C dans multi process programme en python et la sortie de tous les processus gracieusement, j'ai besoin de la solution de travailler à la fois sur windows et unix. J'ai essayé ce qui suit:

import multiprocessing
import time
import signal
import sys

jobs = []

def worker():
    signal.signal(signal.SIGINT, signal_handler)
    while(True):
        time.sleep(1.1234)
        print "Working..."

def signal_handler(signal, frame):
    print 'You pressed Ctrl+C!'
    # for p in jobs:
    #     p.terminate()
    sys.exit(0)

if __name__ == "__main__":
    for i in range(50):
        p = multiprocessing.Process(target=worker)
        jobs.append(p)
        p.start()

Et c'est le genre de travail, mais je ne pense pas que c'est la bonne solution.

EDIT:
Cela peut être un doublon de cette une

InformationsquelleAutor zenpoy | 2012-07-03