में क्रैशिंग (शायद ही कभी) एप्लिकेशन लॉन्च करने के लिए कैसे मुझे पाइथन एप्लिकेशन मिल रहा है जिसे दिन में लगभग 20 000 बार स्वामित्व एप्लिकेशन (जो समय-समय पर दुर्घटनाग्रस्त) निष्पादित करने की आवश्यकता होती है।सबप्रोसेस
समस्या तब होती है जब एप्लिकेशन क्रैश हो जाता है, विंडोज स्वचालित रूप से WerFault ट्रिगर करता है जो प्रोग्राम लटकता रहेगा, इस प्रकार python's subprocess.call()
उपयोगकर्ता इनपुट के लिए हमेशा के लिए इंतजार करेगा (उस एप्लिकेशन को सप्ताहांत पर, छुट्टियों पर, 24/7 पर चलना होगा ... तो यह है स्वीकार्य नहीं है)।
तो sleep; poll; kill; terminate
का उपयोग कर, लेकिन वह communicate()
उपयोग करने की क्षमता खोने का मतलब होगा के बारे में, आवेदन 2 घंटे के लिए कुछ मिलीसेकंड से चला सकते हैं, हालांकि, तो सेटिंग तय समय समाप्ति अप्रभावी
मैं भी turning on automatic debugging की कोशिश की हो जाएगा (एक स्क्रिप्ट जायें जो कि का उपयोग किसी एप्लिकेशन का क्रैश डंप लें और आईडी को समाप्त करें), लेकिन किसी भी तरह यह कैसे मेरे सर्वर पर काम नहीं करता है (WerFault अभी भी दिखाई देता है और उपयोगकर्ता इनपुट के लिए प्रतीक्षा करता है)।
this जैसे कई अन्य ट्यूटोरियल ने कोई प्रभाव नहीं लिया।
प्रश्न: क्या वेरफ़ॉल्ट को प्रदर्शित करने से रोकने के लिए एक तरीका है (उपयोगकर्ता इनपुट के लिए प्रतीक्षा)? इस अधिक तो प्रोग्रामिंग प्रश्न प्रणाली है
वैकल्पिक प्रश्न: वहाँ एक सुंदर अजगर में जिस तरह से कैसे अनुप्रयोग क्रैश पता लगाने के लिए (चाहे WerFault प्रदर्शित किया गया था)
आप बहिष्करण सूची को बाहर करने के लिए क्रैशिंग एप्लिकेशन जोड़ सकते हैं और फिर क्रैश डंप के लिए स्थानीय डंप पर निर्भर कर सकते हैं। Http://msdn.microsoft.com/en-us/library/windows/desktop/bb513617%28v=vs.85%29.aspx – nanda
पर आपने देखा है http://stackoverflow.com/questions/5069224/handling -subprocess-crash-in-windows – n611x007