task überwachen per cron - script frage
hallo ich habe auf einem 1und1 server mit suse 8.1 americas army installiert. jetzt möchte ich per cron alle, sagen wir 5 minuten, überprüfen lassen, ob das programm noch läuft. falls es nicjtmehr läuft soll es dann neu gestartet werden. den groben ablauf weiss ich, aber ich hab keine ahnung wie ich die einzelnen befehle verknüpfen muss. das schema das ich mir vorstelle: checken ob server-bin läuft(der aao-server) ps -A |grep server-bin wenn ja, script beenden wenn nein, script neu starten mit: /opt/games/americasarmy/System/server-bin global Insurgent_Camp -nohomedir -INI=server.ini das ganze am besten nicht als root sondern als user games und wenn auch das fehlschlägt ne mail absetzen mit ner fehlermeldung das stell ich mir als ideal vor. kann mir da irgendwer weiterhelfen? andere vorschläge hör ich auch gerne dazu ;) bye heiko
Hallo CotN, * CotN schrieb am 27.08.2003:
hallo ich habe auf einem 1und1 server mit suse 8.1 americas army installiert. jetzt möchte ich per cron alle, sagen wir 5 minuten, überprüfen lassen, ob das programm noch läuft. falls es nicjtmehr läuft soll es dann neu gestartet werden. den groben ablauf weiss ich, aber ich hab keine ahnung wie ich die einzelnen befehle verknüpfen muss.
das schema das ich mir vorstelle: checken ob server-bin läuft(der aao-server) ps -A |grep server-bin
wenn ja, script beenden
wenn nein, script neu starten mit: /opt/games/americasarmy/System/server-bin global Insurgent_Camp -nohomedir -INI=server.ini das ganze am besten nicht als root sondern als user games
und wenn auch das fehlschlägt ne mail absetzen mit ner fehlermeldung
das stell ich mir als ideal vor.
kann mir da irgendwer weiterhelfen? andere vorschläge hör ich auch gerne dazu ;)
Wie lautet Dein kompletter Name? Danke. pgrep server-bin || /opt/games/americasarmy/System/server-bin global ... Das || bewirkt, wenn der Prozess nicht gefunden wird, der andere Befehl ausgeführt wird. Grüße, Tom
----- Original Message ----- From: "Thomas Preissler" <tomjohn@gmx.de> To: <suse-linux@suse.com> Sent: Wednesday, August 27, 2003 6:46 PM Subject: Re: task überwachen per cron - script frage
Hallo CotN,
* CotN schrieb am 27.08.2003:
hallo ich habe auf einem 1und1 server mit suse 8.1 americas army installiert. jetzt möchte ich per cron alle, sagen wir 5 minuten, überprüfen lassen, ob das programm noch läuft. falls es nicjtmehr läuft soll es dann neu gestartet werden. den groben ablauf weiss ich, aber ich hab keine ahnung wie ich die einzelnen befehle verknüpfen muss.
das schema das ich mir vorstelle: checken ob server-bin läuft(der aao-server) ps -A |grep server-bin
wenn ja, script beenden
wenn nein, script neu starten mit: /opt/games/americasarmy/System/server-bin global Insurgent_Camp -nohomedir -INI=server.ini das ganze am besten nicht als root sondern als user games
und wenn auch das fehlschlägt ne mail absetzen mit ner fehlermeldung
das stell ich mir als ideal vor.
kann mir da irgendwer weiterhelfen? andere vorschläge hör ich auch gerne dazu ;)
Wie lautet Dein kompletter Name? Danke.
pgrep server-bin || /opt/games/americasarmy/System/server-bin global ...
Das || bewirkt, wenn der Prozess nicht gefunden wird, der andere Befehl ausgeführt wird.
Grüße, Tom
------- mein name ist heiko langendörfer. nu zu deinem befehl. der ansatz mit pgrep server-bin funktioniert. offensichtlich auch das weiterleiten mit ||. nur hab ich gemerkt dass ich das programm nicht mit /opt/games/armyops/System/server-bin -parameter starten kann. stattdessen muss ich zuerst: cd /opt/games/armyops/System/ und dann ./server-bin -parameter eingeben, sonst meckert er ne fehlende ini an, auch wenn ich für -INI=... den absoluten pfad angebe.
weisst du dazu noch ne erweiterte lösung? bye heiko langendörfer
Thomas Preissler am Mittwoch, 27. August 2003 18:46:
Hallo CotN,
* CotN schrieb am 27.08.2003:
hallo ich habe auf einem 1und1 server mit suse 8.1 americas army installiert. jetzt möchte ich per cron alle, sagen wir 5 minuten, überprüfen lassen, ob das programm noch läuft. falls es nicjtmehr läuft soll es dann neu gestartet werden. den groben ablauf weiss ich, aber ich hab keine ahnung wie ich die einzelnen befehle verknüpfen muss.
das schema das ich mir vorstelle: checken ob server-bin läuft(der aao-server) ps -A |grep server-bin
wenn ja, script beenden
wenn nein, script neu starten mit: /opt/games/americasarmy/System/server-bin global Insurgent_Camp -nohomedir -INI=server.ini das ganze am besten nicht als root sondern als user games
und wenn auch das fehlschlägt ne mail absetzen mit ner fehlermeldung
das stell ich mir als ideal vor.
kann mir da irgendwer weiterhelfen? andere vorschläge hör ich auch gerne dazu ;)
Wie lautet Dein kompletter Name? Danke.
pgrep server-bin || /opt/games/americasarmy/System/server-bin global ...
Das || bewirkt, wenn der Prozess nicht gefunden wird, der andere Befehl ausgeführt wird.
Vielleicht noch zur Ergänzung und Erläuterung: || ist das logische "ODER" (bzw. "OR"). Das obige Konstrukt bedeutet also: Führe Befehl1 aus ODER Befehl2 `pgrep server-bin` liefert die Prozess-ID(s) von server-bin. Wenn das erfolgreich war, bricht das "ODER" die Befehlskette ab. Weitere interessante Hinweise dazu findet man in diversen Dokumentationen zur Shell-Programmierung (-> google). -- Gruß MaxX 8-)
participants (3)
-
CotN
-
Matthias Houdek
-
Thomas Preissler