Y a-t-il une façon supervisord
peut redémarrer automatiquement un travail échoué/exitéré/terminé et Envoyez-moi un e-mail de notification avec une vidée des dernières lignes X du fichier journal?
Il y a un plugin appelé superlance.
Vous l'installez avec pip install superlance
ou le télécharger à: http://pypi.python.org/pypi/superlance
La prochaine chose que vous faites est que vous allez dans votre supervisord.conf
et ajouter les lignes suivantes:
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m [email protected]
events=PROCESS_STATE
Cela devrait être suivi d'une "mise à jour de super fichesDCTL". Lorsqu'un processus "sort", vous obtiendrez maintenant une notification envoyée à [email protected].
Si vous souhaitez seulement écouter certaines applications sélectionnées, vous pouvez échanger le -a
pour un -p program1
ou s'il s'agit d'un groupe group1:program2
Un exemple serait
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -p program1 -p group1:program2 -m [email protected]
events=PROCESS_STATE
En ce qui concerne le redémarrage automatique: vous devez vous assurer que autorestart
est défini sur true
(il est défini sur unexpected
par défaut). De cette façon, le paquet sera redémarré 3 fois. Si, après cela, il quitte toujours, il abandonne, mais vous pouvez changer cela avec startretries
.
Exemple de programme:
[program:cat]
command=/bin/cat
autorestart=true
startretries=10
J'ai essayé d'installer la superlusion et de courir des crashmail comme ceci:
Sudo apt-get install python-pip
Sudo pip install superlance
après avoir fait:
Sudo nano /etc/supervisor/supervisord.conf
et après que j'ai ajouté:
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m [email protected]
events=PROCESS_STATE
et je ne reçois rien ....
Mon fichier de crashmail est:
#!/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())