थ्रेडिंग मॉड्यूल और थ्रेड() वर्ग का उपयोग करते समय, SIGINT (कंसोल में Ctrl + C) को कैच नहीं किया जा सका।मैं थिगिंग पायथन प्रोग्राम में सिगिनट कैसे पकड़ सकता हूं?
मैं और क्या कर सकता हूं?
सरल परीक्षण कार्यक्रम:
#!/usr/bin/env python
import threading
def test(suffix):
while True:
print "test", suffix
def main():
for i in (1, 2, 3, 4, 5):
threading.Thread(target=test, args=(i,)).start()
if __name__ == "__main__":
main()
मार Ctrl-C का प्रयास करें - कुछ नहीं होता।
मुख्य धागा लपेट या तो SIGINT प्राप्त नहीं होता। अन्यथा मैं इसे पकड़ सकता हूं और sys.exit (0) को कॉल कर सकता हूं। –
लगता है कि मैं गलत हूं। मुख्य धागा SIGINT प्राप्त करते हैं। धन्यवाद! –
लेकिन मुझे समझ में नहीं आता क्यों sys.exit (0) सिग्नल हैंडलर में काम नहीं करता है। –