PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : script zum program restarten



zg0re
09.06.03, 16:19
Hat jemand von euch vielleicht ein script, dass im hintergrund mitläuft und überprüft ob ein bestimmtes programm noch läuft. Läuft es nicht, weil es z.b. abgestürzt ist, startet es das program neu.
Wäre nett wenn jemand der sowas hat hier posten könnte :)

P3AC3MAK3R
09.06.03, 16:35
Hi,

ich habe gerade mal ein wenig rumprobiert, da mich das Problem interessiert hatte. ;)

Das Ergebnis dieser Überlegungen ist das folgende Skript (Dateiname: z. B. test.sh):


anzahl=$(ps ax | grep -i $1 | wc -l)

if [ $anzahl -gt 0 ]; then
echo "Das Programm $1 läuft."
fi

Mit dem Aufruf

test.sh programmname

kann man überprüfen, ob das angegebene Programm läuft.

Ersetzt man nun die echo-Zeile mit dem Aufruf des Programmes und läßt man das Skript per Cronjob aufrufen, so sollte sich das Problem damit eigentlich geklärt haben. :)

Jasper
09.06.03, 17:03
Original geschrieben von zg0re
Hat jemand von euch vielleicht ein script, dass im hintergrund mitläuft und überprüft ob ein bestimmtes programm noch läuft. Läuft es nicht, weil es z.b. abgestürzt ist, startet es das program neu.
Wäre nett wenn jemand der sowas hat hier posten könnte :)

trage das programm einfach mit 'respawn' in die inittab ein. init kümmert sich um den rest.

-j

Jasper
09.06.03, 17:06
Original geschrieben von P3AC3MAK3R

anzahl=$(ps ax | grep -i $1 | wc -l)

if [ $anzahl -gt 0 ]; then
echo "Das Programm $1 läuft."
fi[/PHP]


warum nicht einfach:

if ps ax | grep -iq $1; then
...
fi

oder noch besser (wenn man die pid hat):

if kill -0 $pid; then
...
fi

-j

ThorstenS
09.06.03, 17:57
Vorsicht, wenn man ps aux |grep Dateiname macht, dieser grep-Aufruf wird u.U. auch mit ausgegeben.
Deswegen lieber ps aux | grep Name | grep -v grep

zg0re
09.06.03, 21:12
Also irgendwie klappt das nicht... Ich benutze das zur zeot für lmule (ja lmule ;) ). Wenn es aber schließt dann passier gar nix (wenn ich das von dir nehme, Jasper)