Gibt es eine Möglichkeit, supervisord
einen fehlgeschlagenen / beendet / abgebrochenen Job automatisch neu zu starten und mir eine Benachrichtigungs-E-Mail mit einem Speicherauszug der letzten x Zeilen der Protokolldatei zu senden?
quelle
Gibt es eine Möglichkeit, supervisord
einen fehlgeschlagenen / beendet / abgebrochenen Job automatisch neu zu starten und mir eine Benachrichtigungs-E-Mail mit einem Speicherauszug der letzten x Zeilen der Protokolldatei zu senden?
Es gibt ein Plugin namens Superlance.
Sie installieren es mit pip install superlance
oder laden es herunter unter: http://pypi.python.org/pypi/superlance
Das nächste, was Sie tun, ist, dass Sie in Ihre gehen supervisord.conf
und die folgenden Zeilen hinzufügen:
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m [email protected]
events=PROCESS_STATE
Darauf sollte ein "supervisorctl update" folgen. Wenn ein Prozess "beendet" wird, wird eine Benachrichtigung an [email protected] gesendet.
Wenn Sie nur einige ausgewählte Apps anhören möchten, können Sie die -a
gegen eine austauschen, -p program1
oder wenn es sich um eine Gruppe handelt. group1:program2
Ein Beispiel wäre
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -p program1 -p group1:program2 -m [email protected]
events=PROCESS_STATE
In Bezug auf den automatischen Neustart: Sie sollten sicherstellen, dass autorestart
auf true
( unexpected
standardmäßig) eingestellt ist. Auf diese Weise wird das Paket dreimal neu gestartet. Wenn es danach noch existiert, gibt es auf, aber Sie können das mit ändern startretries
.
Beispielprogramm:
[program:cat]
command=/bin/cat
autorestart=true
startretries=10
Ich habe versucht, superlance zu installieren und Crashmail wie folgt auszuführen:
nachdem ich es getan habe:
und nachdem ich hinzugefügt habe:
und ich bekomme nichts ....
Meine crashmail Datei ist:
quelle