2016-03-01 8 views
5

का उपयोग कर सुपरलांस में smtp के माध्यम से ईमेल भेजें, crashmail का उपयोग कर प्रक्रिया को supervisord में स्थिति बदलते समय मैं ईमेल भेजने की कोशिश कर रहा हूं। डिफ़ॉल्ट sendmail प्रोग्राम के साथ कोई भाग्य नहीं है जिसके लिए बहुत सारे सेटअप की आवश्यकता है, मैंने पाइथन में एक छोटी सी स्क्रिप्ट के साथ जाने का फैसला किया जो SMTP का उपयोग करके ईमेल भेजता है।क्रैशमेल

यह पहले राज्य परिवर्तन के लिए बहुत अच्छा काम करता है (मुझे वास्तव में एक ईमेल प्राप्त हुआ है कि प्रक्रिया स्थिति बदलती है) लेकिन बाद में काम करना बंद कर दें। मैंने supervisord जैसे buffer_size या autorestart में विभिन्न विकल्पों को बदलने की कोशिश की है लेकिन इसका कोई प्रभाव नहीं है।

import time 

from datetime import datetime 

if __name__ == '__main__': 
    print(">>>>> STARTING ...", flush=True) 
    while True: 
     print("sleep now:", datetime.utcnow(), flush=True) 
     time.sleep(30) 
     raise Exception("meo meo") 

यह स्क्रिप्ट जीमेल के माध्यम से ईमेल भेजता है जो:

यहाँ स्क्रिप्ट मैं supervisord स्थिति परिवर्तन को गति प्रदान करने के लिए उपयोग है। यह stdin भेज देगा।

#!/usr/bin/env python 

import smtplib 


def get_server(): 
    smtpserver = smtplib.SMTP('smtp.gmail.com:587') 
    smtpserver.ehlo() 
    smtpserver.starttls() 
    smtpserver.login("[email protected]", "password") 
    return smtpserver 


if __name__ == '__main__': 
    import sys 

    data = sys.stdin.read() 

    s = get_server() 
    s.sendmail('[email protected]', ['[email protected]'], data) 
    s.quit() 

यहाँ मेरी supervisord.conf

[eventlistener:crashmail] 
command=crashmail -a -m [email protected] -s /home/ubuntu/mysendmail.py 
events=PROCESS_STATE 
buffer_size=102400 
autorestart=true 

किसी को भी किसी भी विचार क्यों है है? धन्यवाद!

उत्तर

2

मैं /etc/supervisor/conf.d में और अब सब कुछ अपेक्षानुसार कार्य कर रही (supervisord.conf के अंत में डाल के बजाय) ...

+0

Thats अजीब, किसी भी विचार क्यों यह आवश्यक एक में होना एक अलग फाइल करने के लिए eventlistener अनुभाग में ले जाया गया इस तरह की अलग फाइल? मुझे एक बहुत ही समान समाधान को लागू करने की आवश्यकता है, हालांकि मैं शायद रूबी का उपयोग करूंगा – wired00