hi,
1.
ich habe bereits ein Script das prüft ob ein Programm läuft,
aber wenn sich jenes Programm aufhängt so bleibt ja die PID erhalten.
Die Auswertung im Script erfolgt mit pidof.
Das Problem, wenn ich z.b die CPU Auslastung des zu prüfenden Programm's
mit in die Auswertung übernehme bringt mir das nicht viel, da selbiges auch mal 100%
erreicht.
gibt es eine Möglichkeit zu prüfen ob sich ein Programm aufgehängt hat um es dann
neu zu starten ?
2.
Programm "A" soll Programm "B" über ein Button starten und sich dann beenden.
Wird Programm "B" beendet soll Programm "A" wieder starten.
Wie kann ich das in einem Shellscript realisieren ??
mfg
vobie
Test ob ein Programm läuft oder sich aufgehangen hat.
Test ob ein Programm läuft oder sich aufgehangen hat.
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: Test ob ein Programm läuft oder sich aufgehangen hat.
warum verwendest du nicht nagios oder aehnliches?
Re: Test ob ein Programm läuft oder sich aufgehangen hat.
weil es auf dem System nur zwei Anwendungen und minimales X ohne Fenstermanager gibt.suno hat geschrieben:warum verwendest du nicht nagios oder aehnliches?
nagios ist da etwas zu viel des guten.
Übrigens benutze ich bereits nagios zur Server Überwachung.
Das minimal System ist ein alter Rechner, der nur einen Internet Browser und Mail Client bereitstellen soll.
Das ganze auch nur mit virtueller Tastatur ohne Maus.
Die Eingaben erfolgen ausschließlich über eine bluetooth Fernbedienung
Der Rechner wird (soll) auch unabhängig vom Netzwerk (nur Internet) laufen.
mfg
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.
Re: Test ob ein Programm läuft oder sich aufgehangen hat.
Hallo,
zu 1.)
(der z.B. auf Z stehen könnte - siehe man page) und in Abhängigkeit davon Maßnahmen einleiten.
ps wird doch auch auf einem Minimalsystem vorhanden sein.
zu 1.)
Du kannst doch z.B. mit ps den Status des Programmes ermitteln...gibt es eine Möglichkeit zu prüfen ob sich ein Programm aufgehängt hat um es dann
neu zu starten ?
(der z.B. auf Z stehen könnte - siehe man page) und in Abhängigkeit davon Maßnahmen einleiten.
ps wird doch auch auf einem Minimalsystem vorhanden sein.
Re: Test ob ein Programm läuft oder sich aufgehangen hat.
hi,
wenn's nur um diese zwei Programme geht, kann man wohl was machen: Mail-Programme hängen sich nicht auf, das können wir vertagen. Der Iceweasel hängt sich aber wirklich so auf, dass man von außen kaum unterscheiden kann, ob er vielleicht nur auf den Benutzer wartet. Deshalb bekommt er eine Startseite, die sich regelmäßig neu lädt und zwar von einem Script, das als lokaler "Webserver" dient. Wenn die Seite zu lange nicht neu geladen wird, kann das Script den Browser neu starten.
Zum Beispiel mit diesen drei Dateien:
watchdog.html ist die Startseite, sie macht ein 2. Fenster auf. Das lässt sich mit besserem JavaScript sicher noch verfeinern
in das 2. Fenster wird die watchdog.http geladen man achte auf die Leerzeile vor html.
Und schließlich das Script
Auf einem sehr langsamen Rechner müssen die Zeiten evt. verlängert werden. Der mplayer steht hier als Beispiel für ein Programm, das vom Browser gestartet wurde und dann eigenständig weiterläuft.
Über das Verzeichnis für die Dateien kann man streiten, aber das Script gehört nach /usr/local/bin und die anderen beiden sind ja irgendwie auch ausführbar und so stehen sie alle beisammen.
Edit: das Script sollte unter einem normalen User laufen.
Als zusätzliche Maßnahme gegen Browser in Endlosschleifen benutze ich "nice -3 iceweasel"; aber das ist eher für normale Desktops interessant.
wenn's nur um diese zwei Programme geht, kann man wohl was machen: Mail-Programme hängen sich nicht auf, das können wir vertagen. Der Iceweasel hängt sich aber wirklich so auf, dass man von außen kaum unterscheiden kann, ob er vielleicht nur auf den Benutzer wartet. Deshalb bekommt er eine Startseite, die sich regelmäßig neu lädt und zwar von einem Script, das als lokaler "Webserver" dient. Wenn die Seite zu lange nicht neu geladen wird, kann das Script den Browser neu starten.
Zum Beispiel mit diesen drei Dateien:
watchdog.html ist die Startseite, sie macht ein 2. Fenster auf. Das lässt sich mit besserem JavaScript sicher noch verfeinern
Code: Alles auswählen
<html>
<body onLoad='window.open("http://localhost:1234", "_blank");'>
</body>
</html>
Code: Alles auswählen
HTTP/1.0 200 OK
Date: Mon, 14 Feb 2005 06:04:27 GMT
Content-Type: text/html; charset=UTF-8
Connection: Close
<html>
<head> <meta http-equiv="refresh"; content="10"> </head>
<body>
wenn dieses Fenster geschlossen wird, wird der Browser automatisch neu gestartet.
</body>
</html>
Und schließlich das Script
Code: Alles auswählen
#/bin/sh
TIME_OUT=1 # nach einer Sekunde wird der Browser das erste Mal gestartet
while true; do
if ! netcat -l -p 1234 -w $TIME_OUT -q 2 < /usr/local/bin/watchdog.http 2> /dev/null
then
killall --quiet --wait firefox-bin
killall --quiet --wait mplayer
iceweasel file:///usr/local/bin/watchdog.html &
TIME_OUT=25 # nach den Neustart lange genug warten
else
TIME_OUT=15 # solange er laeuft, kontrollieren wir oefter
fi
done
Über das Verzeichnis für die Dateien kann man streiten, aber das Script gehört nach /usr/local/bin und die anderen beiden sind ja irgendwie auch ausführbar und so stehen sie alle beisammen.
Edit: das Script sollte unter einem normalen User laufen.
Als zusätzliche Maßnahme gegen Browser in Endlosschleifen benutze ich "nice -3 iceweasel"; aber das ist eher für normale Desktops interessant.
Beware of programmers who carry screwdrivers.
Re: Test ob ein Programm läuft oder sich aufgehangen hat.
hi,
danke erstmal für die Anregungen.
bin jetzt am ausprobieren von div. Möglichkeiten.
mfg
vobie
danke erstmal für die Anregungen.
bin jetzt am ausprobieren von div. Möglichkeiten.
mfg
vobie
Es gibt keine dummen Fragen. Aber leider viele dumme Antworten.