Prozesse überwachen
-
Hi,
ich möchte ein Tool unter Linux schreiben, dass überprüft, ob bestimmte andere Programme noch laufen oder beendet wurden.z.B. Mein "Überwachungsprogramm" soll überprüfen ob das Programm mit dem Namen "Test" noch aktiv/am laufen ist. Ist dieses Programm nicht mehr aktiv, soll es automatisch wieder vom "Überwachungsprogramm" gestartet werden.
Wie lässt sich so etwas am einfachsten unter Linux realisieren?
-
Sowas gibts doch schon längst.
monit zB ist eine sehr ausgereifte Monitoring-Lösung.
-
Vielen Dank, es ist ja schön dass es so etwas schon gibt. Aber ich möchte so etwas halt in ein Projekt von mit mit einbauen!
-
Schau Dir eben an, wie monit das macht; im wesentlichen wird es darauf hinauslaufen, dass Du ein Pidfile anlegst und überprüfst, ob Dein Programm noch unter der angegebenen PID läuft, genau wie bei monit eben. (Ist OpenSource, darum kannst Du Dir das ganz genau ansehen.)
-
Am einfachsten wäre wohl der Daemontools-Ansatz. Du startest den Prozess in deinem Programm selbst und wartest mit man: wait(2) auf den Prozess. Kehrt wait zurück, ist der Prozess tot und du startest ihn neu.
-
Das ist doch mal ein Ansatz. THX