Prozesse per Skript kontrollieren

Darian

Erfahrenes Mitglied
Hallo Leute,

ich habe ein paar Programme die immer laufen sollten. Ich habe daher ein Skript was mit pidof kontrolliert ob diese Laufen.

Dieses Skript wird automatisch ausgeführt...

Wenn jetzt aber einer dieser Prozesse nicht mehr läuft (wegen Semgentation fault). Checkt das mein Skript nicht.

Sobald ich aber irgendwas in die Shell eingebe, auch wenn es nur ein Enter ist wird ja folgendes ausgegeben:

[2]- Terminated ${PLAYER_DIR}/Tools

Ab dann scheint pidof wieder richtig zu funktionieren.

Wie könnte ich also das per Skript auch machen. Scheint so als würde Linux die Processeinfos erst aktualisieren sobald irgendwas aktiv vom User gemacht wird...

Ich hoffe man versteht ungefähr worauf ich hinaus will.

Wäre super wenn da jemand eine Lösung hätte dafür...

lg Darian
 

genodeftest

Erfahrenes Mitglied
Gute Frage…
Ich mache solche Abfragen mit ps, das funktioniert bei mir einwandfrei.
Code:
ps -C processname
Wie sieht denn dein Skript aus?
 

Darian

Erfahrenes Mitglied
Habe mich schon ein bisschen mehr informiert und kann daher schon mehr dazu sagen...

Ein Prozess geht nach einem Problem in einen Zombie-State (weiß nicht ob der wirklich so heißt)

pidof und ps in einem Skript würden daher nicht funktionieren. Man könnte es lösen indem man den Prozess als Dämon startet mit init oder setsid.

Ich habe es jetzt mit einem einfach Skript gelöst..

Code:
while true
do
   START_BINARY
done

Dieses Skript einfach mit & starten. Wenn ein Absturz passieren würde, startet es automatisch wieder neu...

So habe ich es gemacht, weil ich bei meinem Linux auch setsid habe und eigentlich gar nichts habe was das Leben vereinfachen würde.

lg Darian