क्या कोई ऐसा तरीका है जो supervisordस्वचालित रूप से विफल / निर्वासित / समाप्त नौकरी को फिर से शुरू कर सकता है और मुझे लॉग फ़ाइल की अंतिम x लाइनों के डंप के साथ एक अधिसूचना ईमेल भेज सकता है?
क्या कोई ऐसा तरीका है जो supervisordस्वचालित रूप से विफल / निर्वासित / समाप्त नौकरी को फिर से शुरू कर सकता है और मुझे लॉग फ़ाइल की अंतिम x लाइनों के डंप के साथ एक अधिसूचना ईमेल भेज सकता है?
जवाबों:
एक प्लगइन है जिसे सुपरलेंस कहा जाता है।
आप इसे इसके साथ स्थापित करते हैं 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
मैंने इस तरह से अतिशयोक्ति स्थापित करने और दुर्घटनाग्रस्त होने की कोशिश की:
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())