में Ctrl + C/SIGINT और बाहर निकलें multiprocesses को पकड़ें मैं मल्टीप्रोसेस पायथन प्रोग्राम में Ctrl + C कैसे पकड़ूं और सभी प्रक्रियाओं से बाहर निकलता हूं, मुझे यूनिक्स और विंडोज दोनों पर काम करने का समाधान चाहिए। मैं निम्नलिखित की कोशिश की है:पाइथन
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
[पाइथन के मल्टीप्रोसेसिंग पूल के साथ कीबोर्ड इंटरप्ट्स] का संभावित डुप्लिकेट (https://stackoverflow.com/questions/1408356/keyboard-interrupts-with-pythons-multiprocessing-pool) – tabata