如何在多進程python程序中捕獲Ctrl + C並正常退出所有進程,我需要解決方案在unix和windows上都能正常工作。我已經試過如下:抓住Ctrl + C/SIGINT並在python中優雅地退出多進程
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()
而且這樣的工作,但我不認爲這是正確的解決方案。
編輯: 這可能是this one
可能的重複[鍵盤中斷與python的多處理池](https://stackoverflow.com/questions/1408356/keyboard-interrupts-with-pythons-multiprocessingpool) – tabata