Bir iş çıktığında denetleyiciden bildirim alın


36

Herhangi bir yolu var mı supervisordotomatik olarak başarısız / çıktıktan / sonlandırılmış işi yeniden başlatabilirsiniz ve günlük dosyasının Son x hatlarının bir dökümü ile bana bir bildirim gönderecektir?

Yanıtlar:


49

Süper adında bir eklenti var.

Http://pypi.python.org/pypi/superlance adresinden yükleyin pip install superlanceveya indirin.

Yapacağınız bir sonraki şey, içine gidip supervisord.confaşağıdaki satırları eklemeniz:

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

Bunu bir "süpervizör güncellemesi" takip etmelidir. Bir işlem "çıktığında", artık email1@example.com adresine gönderilen bir bildirim alacaksınız.

Yalnızca seçilen bazı uygulamalar dinlemek isterseniz alışverişi yapabilir -abir için -p program1ya da bir grup ise group1:program2bir örnek olacaktır

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

Otomatik yeniden başlatmayla ilgili olarak: autorestartayarlandığından emin olmalısınız true( unexpectedvarsayılan olarak ayarlanmıştır ). Bu şekilde paket 3 kez yeniden başlatılır. Ondan sonra hala çıkarsa, pes eder, ancak bunu değiştirebilirsiniz startretries.

Örnek program:

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

Birkaç yıl boyunca aktif olmamasına rağmen, bu konu hala geçerlidir - Süper 1.0.0'ı (Ekim 2016 tarihli) denetçi 3.1.4 (CentOS7) ile test ettim ve crashmail gayet iyi çalıştı.
David Ramirez

0

Süper yükleme ve bu şekilde crashmail çalıştırmayı denedim:

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

Yaptıktan sonra:

sudo nano /etc/supervisor/supervisord.conf

ve ekledikten sonra:

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

ve hiçbir şey almıyorum ....

Crashmail dosyam:

#!/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())
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.