Ich habe ein Golang-Programm, das ich neu starten möchte, nachdem es auf einer Debian Squeeze-Box beendet wurde. Das Ding dient HTTP hinter einem Apache 2 mod_proxy Setup. Ich erwarte nicht, dass der Prozess fehlschlägt, aber ich hätte gerne eine Versicherung dagegen.
Unter Ubuntu hätte ich upstart verwendet, um den Prozess am Leben zu erhalten. Debian mag Upstart nach meinem Verständnis nicht, da es ein Init-Ersatz ist.
Gibt es eine Alternative, die einen oder mehrere Prozesse nach deren Beendigung neu startet, die auf Squeeze funktioniert und mit init gut funktioniert?
debian
init.d
debian-squeeze
Gelöscht
quelle
quelle
Antworten:
Der beste Weg dafür sind die
daemontools
. Mit ihnen können Sie Prozesse überwachen und erneut starten.Siehe die Dokumentation auf ihrer Website: http://cr.yp.to/daemontools.html
quelle
Supervise ist eine leichte und effiziente Alternative. Unter Debian ist es in Daemontools verpackt . Sie können auch diese verwandte Frage lesen , in der einige Kritikpunkte für die Überwachung aufgeführt sind, und die einen Neustart als weitere Möglichkeit erwähnt.
Wenn Sie etwas unglaublich Einfaches einrichten möchten, habe ich mit monit großen Erfolg gehabt . Es ist auch in Debian verpackt .
quelle
Überwachen oder Überwachen sind gut, um einen einzelnen Prozess am Leben zu erhalten. Da Sie darum bitten, "einen oder mehrere" Prozesse am Leben zu erhalten, möchte ich Supervisord einstecken . Es ist sicherlich übertrieben, einen einzelnen Prozess zu verwalten, aber wenn Sie mehrere Prozesse im Auge behalten müssen, kann es Ihr Ding sein.
quelle
Eine Möglichkeit besteht darin
/etc/inittab
, Ihr Skript zu verwenden, anstatt es einzufügen/etc/init.d/
.Sie fügen einfach einen Eintrag im folgenden Format hinzu:
<jobname>:<runlevels>:respawn:<command>
Leider bedeutet dies, dass Sie die normalen Start- / Stopp- / Neustart-Init-Befehle nicht verwenden können, aber es sollte sicherstellen, dass Ihr Skript die ganze Zeit ausgeführt wird.
quelle
Die verteilungsübergreifende Behandlung von Prozessneustarts erfolgt mit cron und einem einfachen Skript. Eine Beschreibung finden Sie hier. So halten Sie einen Job unter Linux am Laufen
Das Skript sieht ungefähr so aus
quelle