मैंने monit का उपयोग नहीं किया है लेकिन पर्यवेक्षकों के साथ कुछ महत्वपूर्ण त्रुटियां हैं।
- कार्यक्रम अग्रभूमि
इसका मतलब है आप बस शुरू /etc/init.d/apache2 पर अमल नहीं कर सकते में चलाने चाहिए। ज्यादातर बार आप केवल एक लाइनर लिख सकते हैं उदा। "स्रोत/आदि/apache2/envvars & & exec/usr/sbin/apache2 -DFOREGROUND" लेकिन कभी-कभी आपको अपनी खुद की रैपर स्क्रिप्ट की आवश्यकता होती है। रैपर स्क्रिप्ट के साथ समस्या यह है कि आप दो प्रक्रियाओं, माता-पिता और बच्चे के साथ समाप्त होते हैं। अगले दोष देखें ...
- supervisord बच्चे प्रबंधित नहीं करता है प्रक्रियाओं
अपने कार्यक्रम बच्चे प्रक्रिया प्रारंभ होता है, अभ्यस्त इस का पता लगाने के supervisord। यदि माता-पिता की प्रक्रिया मर जाती है (या अगर इसे पर्यवेक्षक का उपयोग करके पुनरारंभ किया जाता है) तो बच्चे की प्रक्रिया चलती रहती है लेकिन इनिट प्रक्रिया द्वारा "अपनाया" जाएगा और चलना जारी रहेगा। यह आपके प्रोग्राम के भविष्य के आक्रमणों को चलाने या अतिरिक्त संसाधनों का उपभोग करने से रोक सकता है। हालिया कॉन्फ़िगरेशन विकल्प स्टॉपसग्रुप और किलासग्रुप को इसे ठीक करना है, लेकिन मेरे लिए काम नहीं किया।
- supervisord कोई निर्भरता प्रबंधन है - #122
मैं हाल ही में qlproxy के साथ सेटअप व्यंग्य देखते हैं। qlproxyd पहले शुरू करने की जरूरत है अन्यथा स्क्विड विफल हो सकता है। भले ही दोनों कार्यक्रम पर्यवेक्षक के साथ प्रबंधित किए गए थे, यह सुनिश्चित करने का कोई तरीका नहीं था। मुझे स्क्विड के लिए एक स्टार्ट स्क्रिप्ट लिखनी पड़ी जिसने इसे qlproxyd प्रक्रिया के लिए इंतजार किया।जोड़ना शुरू स्क्रिप्ट अनाथ प्रक्रिया समस्या दोष में वर्णित में हुई 2
- supervisord आप startretries के बीच देरी को नियंत्रित करने के
कभी-कभी जब एक प्रक्रिया विफल की अनुमति नहीं है शुरू करने के लिए (या क्रैश), ऐसा इसलिए है क्योंकि यह किसी नेटवर्क संसाधन के कारण संभवतः किसी अन्य संसाधन तक पहुंच नहीं प्राप्त कर सकता है। पर्यवेक्षक को कई बार प्रक्रिया को पुनरारंभ करने के लिए सेट किया जा सकता है। पुनरारंभ करने के बीच प्रक्रिया "बैकॉफ" स्थिति में प्रवेश करेगी लेकिन बैकऑफ की अवधि में कोई दस्तावेज या नियंत्रण नहीं है।
अपने रक्षा पर्यवेक्षक में 80% समय की हमारी आवश्यकताओं को पूरा करता है। विन्यास समझदार और दस्तावेज बहुत अच्छा है।
ऐसा रैपर बनाना वास्तव में एक समस्या नहीं है - यदि आप एक निगरानी सॉफ्टवेयर चला रहे हैं, तो आम तौर पर आपके फ़ाइल सिस्टम पर कुछ नियंत्रण होता है। और यह केवल एक छोटी सी लिपि बनाने के लिए लेता है। अच्छी व्याख्या के लिए +1। –
@ एक्सवियर असहमत, एक रैपर स्क्रिप्ट अभी तक एसपीओफ़ को परेशान कर रही है और हर डेमॉन को निश्चित रूप से लपेटा नहीं जा सकता है, उदाहरण के लिए – Darek
@ दारावाहुस्तिदी के लिए कुछ जावा चीजों के बारे में सोचें, आपके पास एक वैध बिंदु है, लेकिन पर्यवेक्षक के साथ यह दूसरी तरफ है: कुछ कार्यक्रम जैसे deemonize करने के लिए, जबकि पर्यवेक्षक को सब कुछ अग्रभूमि में रहने की आवश्यकता है। हालांकि, मोनिट के लिए एक रैपर लिखना बहुत अधिक आगे लगता है। http://supervisord.org/subprocess.html#nondaemonizing-of-subprocesses http://www.mmonit.com/wiki/Monit/FAQ#pidfile – Amir