Ich habe Daemontools verwendet , um eine einfache und zuverlässige Möglichkeit zur Überwachung von Unix-Diensten auf meinen Servern bereitzustellen. Es funktioniert gut, aber es erfordert eine andere Denkweise ( The DJB Way ) und einige häufige Beschwerden sind:
- TAI64N- basierte Zeitstempel
- Speichert keine Skripte unter /etc/init.d (oder (/usr/local)/etc/rc.d)
- Funktioniert nicht immer mit Skripten wie apachectl. Einige Skripte müssen neu geschrieben werden.
Ich erinnere mich, dass einige ähnliche "Supervisor / Watchdog" -Dämonen vor ungefähr zwei Jahren in Arbeit waren, aber einige waren noch ein wenig rau an den Rändern.
Wenn Sie von Daemontools zu etwas anderem gewechselt sind, was haben Sie gewählt und hat es für Sie gut funktioniert? Wird RedHat oder Ubuntu standardmäßig mit Dienstprogrammen zur Prozessüberwachung geliefert?
quelle
runsv
Befehl vonrunit
benutzerdefinierte Steuerelemente unterstützt, sodass ein Neustart in Bezug auf die systemeigenen Steuerelement-Binärdateien eines Daemons implementiert werden kann.Nun, es gibt Runit . Ich kann Ihnen nicht sagen, was die Unterschiede und Ähnlichkeiten mit daemontools sind, aber nach der Berstein-esque-Website würde ich sagen, dass es einen bestimmten Bernstein-Einfluss gibt.
quelle
Fedora scheint bereit zu sein, auf systemd umzusteigen : http://0pointer.de/blog/projects/systemd.html
quelle
Alternativ zu dem bereits erwähnten
daemonize
unddaemontools
gibt es den Daemon- Befehl des libslack-Pakets.daemon
ist recht konfigurierbar und kümmert sich um alle langwierigen Daemon-Dinge wie automatischen Neustart, Protokollierung oder Pidfile-Behandlung.quelle
Es gibt Supervisor
quelle
Es gibt auch das Daemon- Tool von libslack , das in C geschrieben und für verschiedene (Unix-) Plattformen verfügbar ist.
Es ist ziemlich konfigurierbar und kümmert sich um alle mühsamen Daemon-Dinge wie automatischen Neustart, Protokollierung oder Pidfile-Behandlung.
quelle
Ubuntu kommt mit Upstart - ich weiß nicht viel darüber, aber ich weiß, dass es "Supervisor" -Funktionen hat. Apples launchd ist eine weitere Option (dieser Wikipedia-Artikel hat einen schönen "see also" -Abschnitt, in dem auch einige andere aufgelistet sind, einschließlich Upstart & RunIt).
Alle haben ihre guten Seiten und eine eigene Marke von Übersuck - Immer wenn mich jemand nach "Process Supervisor" / "Watchdog" -Programmen fragt, stelle ich mir immer die gleiche Frage: Warum brauchen Sie eines?
quelle
Es gibt keine populären / Community-Consensus-Tools dafür, weil jeder, der diesen Weg einschlägt, erkennt, dass es eine Sackgasse ist. Wenn Ihre lang andauernden Prozesse zu oft fehlschlagen, um eine einfache Überwachung zu ermöglichen, beenden Sie die Verwendung und verschieben Sie Ihren Code in einen ereignisgesteuerteren Bereich.
edit: wie Chris weiter unten ausführt, sind Sie manchmal in die Enge getrieben. In diesem Fall führt ein * / 1-Cron-Job, der nach dem Prozess / der PID-Datei sucht, einen Start / Neustart durch, falls dieser fehlt, und gibt die Ergebnisse in einer E-Mail an den Verantwortlichen aus Entwickler / Produktmanager ist Ihre Ersatzposition.
quelle