पर एक लंबे समय से चलने वाले कार्य को बनाए रखना मेरे सिस्टम में एक कार्य शामिल है जो नेटवर्क सॉकेट खोलता है, नेटवर्क से धक्का डेटा प्राप्त करता है, इसे संसाधित करता है, और संदेश के आधार पर डिस्क या अन्य मशीनों को पिंग करता है। यह कार्य हमेशा के लिए चलाने का इरादा है, और सेवा को यह कार्य हमेशा चलने के लिए डिज़ाइन किया गया है। लेकिन कभी-कभी यह दुर्घटनाग्रस्त हो जाता है।लिनक्स
इस तरह के काम को जीवित रखने के लिए सबसे अच्छा अभ्यास क्या है? मान लें कि कार्य को पुनरारंभ करने से पहले 30 सेकंड तक कार्य के लिए यह ठीक है।
कुछ स्पष्ट विचारों में वॉचडॉग प्रक्रिया शामिल है जो यह सुनिश्चित करने के लिए जांचती है कि प्रक्रिया अभी भी चल रही है। वॉचडॉग cron
द्वारा ट्रिगर किया जा सकता है। लेकिन यह कैसे पता चलता है कि प्रक्रिया जिंदा है या नहीं? एक पिडफाइल लिखें? touch
एक दिल की धड़कन फ़ाइल? एक आदर्श समाधान लगातार प्रक्रियाओं को तब तक नहीं बढ़ाएगा जब मशीन उस बिंदु पर फंस जाती है जहां वॉचडॉग दिल की धड़कन से तेज़ी से चल रहा है।
क्या इसके लिए मानक लिनक्स उपकरण हैं? मैं एक समाधान की कल्पना कर सकता हूं जो एक संदेश कतार का उपयोग करता है, लेकिन मुझे यकीन नहीं है कि यह एक अच्छा विचार है या नहीं।
सुपरसियर में जाने के लिए वोटिंग, unix.se शायद बेहतर भी होगा। –