GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verwende ich den Linux-Software-Watchdog?

Wie wäre es mit cron? Richten Sie einen kleinen Cron-Job ein, der jede Minute ausgeführt wird. Überprüfen Sie, ob Ihre Anwendung läuft (mit ps) und starten Sie sie neu, falls nicht.

Erstellen Sie ein kleines Skript wie dieses:

#!/bin/bash
if [ ! "$(pidof myapp)" ] 
then
  /path/to/myapp &
fi

Sie testen, ob "myapp" in der Prozessliste enthalten ist. "!" kehrt den Test um. Wenn es nicht da ist, wird "myapp" ausgeführt. "&" ist nur so, dass es im Hintergrund startet.

Fügen Sie dies zu cron hinzu. Abhängig von Ihrem System und Ihren Einstellungen gibt es mehrere Möglichkeiten, dies zu tun. Der Klassiker ist die Verwendung von crontab. Es gibt eine Menge Dokumentation darüber, wie Sie Ihre crontab-Zeile spezifizieren, aber Sie wollen wahrscheinlich so etwas:

* * * * * /path/to/the/script.sh > /dev/null

Dadurch wird Ihr Test jede Minute zu jeder Stunde von jedem ... Sie verstehen schon.


Verwenden Sie /etc/inittab Sie können es verwenden, um in den spezifischen Runlevels zu starten, und wenn es beendet wird, soll es automatisch neu gestartet werden

n:2345:respawn:/path/to/app

Dadurch wird es in Runlevel 2345 respawnen, Sie brauchen wahrscheinlich nur 3 und 5, aber das wird gut funktionieren und ist in Linux integriert.


Die meisten Unix/Linux init Programme verwalten Daemons für Sie und starten sie neu. Erwägen Sie, Ihren Dienst in /etc/inittab zu platzieren . Oder Sie verwenden vielleicht Upstart oder systemd .

Alle diese Programme laufen als PID 1 und es ist ihre Aufgabe, Systemprozesse zu überwachen und neu zu starten.

Von Ihrem Busybox-Tag würde ich annehmen, dass Sie ein eingebettetes System ausführen. Auf diesen sind die Init-Skripte im System-V-Stil mit all ihren Shell-Skripten wirklich übertrieben. Sie sollten das wahrscheinlich alles herausreißen und durch Einträge in /etc/inittab ersetzen oder Upstart- oder Systemd-Jobs.


Der Linux-Software-Watchdog wird die Maschine neu starten, nicht nur Ihren Prozess neu starten.

Nun, das ist einfach nicht wahr, es ist sehr gut möglich, einzelne oder mehrere Prozesse neu zu starten, nachdem der Watchdog signalisiert, dass das System hängt - Sie können den Neustart sogar ABBRECHEN oder einen SOFT-Neustart durchführen, man kann "test" und " repair"-Skripte / Binärdateien, die tun, was Sie wollen. Die Busybox-Version von Watchdog ist auf ein nahezu unbrauchbares Niveau reduziert ... ich denke, die Welt wird nie erfahren, warum die Busybox-Entwickler beschlossen haben, primäre Funktionalitäten aufzugeben - im Moment wäre es am besten, Busybox überhaupt zu vermeiden --> Die Geschwindigkeitsverbesserungen sind fast nicht vorhanden, die Größenreduzierung gleicht den enormen Funktionsverlust nicht aus. /bin/bash ist eher klein - kompilieren Sie alles mit dem Flag "-Os" neu, wenn die Größe wichtig ist und Sie können loslegen - ein Out-of-the-Box-Watchdog, der so ziemlich alles zulässt, was man sich nur wünschen kann.

Oh und BITTE erstellen Sie KEINEN eigenen Watchdog - das wird Sie höchstwahrscheinlich mit unbehandelten Fehlern zurücklassen und Ihnen eines Tages das Leben schwer machen.


Linux
  1. So verwenden Sie BusyBox unter Linux

  2. Wie ich Cron unter Linux verwende

  3. So verwenden Sie FIND unter Linux

  4. So verwenden Sie den Su-Befehl unter Linux

  5. So verwenden Sie Google Drive unter Linux

So verwenden Sie den Linux-Bildschirm

So verwenden Sie du Command unter Linux

So verwenden Sie das Linux-Terminal in Android

So verwenden Sie AppImage unter Linux [Vollständige Anleitung]

So verwenden Sie den Befehl sysctl unter Linux

So verwenden Sie den Befehl zum Herunterfahren von Linux