नौकरी से बाहर निकलने पर पर्यवेक्षक से अधिसूचना प्राप्त करें


36

क्या कोई ऐसा तरीका है जो supervisordस्वचालित रूप से विफल / निर्वासित / समाप्त नौकरी को फिर से शुरू कर सकता है और मुझे लॉग फ़ाइल की अंतिम x लाइनों के डंप के साथ एक अधिसूचना ईमेल भेज सकता है?

जवाबों:


49

एक प्लगइन है जिसे सुपरलेंस कहा जाता है।

आप इसे इसके साथ स्थापित करते हैं pip install superlanceया इसे डाउनलोड करते हैं: http://pypi.python.org/pypi/superlance

अगली चीज़ जो आप करते हैं वह है कि आप अपने में जाएँ supervisord.confऔर निम्नलिखित पंक्तियाँ जोड़ें:

[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m email1@example.com
events=PROCESS_STATE

इसके बाद "सुपरवाइजरटेक् ट अपडेट" होना चाहिए। जब एक प्रक्रिया "बाहर निकलती है" तो अब आपको email1@example.com पर एक सूचना भेजी जाएगी।

यदि आप केवल कुछ चुने हुए ऐप्स को सुनना चाहते हैं, तो आप इसके -aलिए एक्सचेंज कर सकते हैं -p program1या यदि यह एक समूह है तो group1:program2एक उदाहरण होगा

[eventlistener:crashmail]
command=/usr/local/bin/crashmail -p program1 -p group1:program2  -m email1@example.com
events=PROCESS_STATE

स्वचालित पुनरारंभ के बारे में: आपको यह सुनिश्चित करना चाहिए कि autorestartयह सेट है true(यह unexpectedडिफ़ॉल्ट रूप से सेट है )। इस तरह पैकेज को 3 बार फिर से शुरू किया जाएगा। यदि इसके बाद भी यह बाहर निकलता है, तो यह छोड़ देता है, लेकिन आप इसे बदल सकते हैं startretries

उदाहरण कार्यक्रम:

[program:cat]
command=/bin/cat
autorestart=true
startretries=10

कुछ वर्षों के लिए निष्क्रिय रहने के बावजूद यह धागा अभी भी मान्य है - मैंने सुपरस्टेंस 1.0.0 (दिनांकित अक्टूबर 2016) का पर्यवेक्षक 3.1.4 (CentOS7) के साथ परीक्षण किया और क्रैशमेल ने ठीक काम किया।
डेविड रामिरेज़

0

मैंने इस तरह से अतिशयोक्ति स्थापित करने और दुर्घटनाग्रस्त होने की कोशिश की:

sudo apt-get install python-pip
sudo pip install superlance

के बाद मैं:

sudo nano /etc/supervisor/supervisord.conf

और मेरे जाने के बाद:

[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m mymail@mail.fr
events=PROCESS_STATE

और मुझे कुछ भी प्राप्त नहीं है ...।

मेरी क्रैश फ़ाइल है:

#!/usr/bin/python

-- coding: utf-8 --
import re
import sys

from superlance.crashmail import main

if name == 'main':
sys.argv[0] = re.sub(r'(-script.pyw?|.exe)?$', '', sys.argv[0])
sys.exit(main())
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.