überwachungsscript will nicht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Totta123
Beiträge: 77
Registriert: 09.10.2002 20:07:02

überwachungsscript will nicht

Beitrag von Totta123 » 10.02.2011 12:50:12

Hi, ich nutze folgendes script zur Überwachung eines prozesses:

Code: Alles auswählen

#!/bin/sh
count=$(ps aux | grep -v grep | grep -c fluxx.x86)
if [ "$count" -lt 1 ];    # Programm fluxx.x86 laeuft nicht
then
echo "`date` fluxx laeuft nicht" >> /em/log/fluxx_check.log
pkill fluxx.x86
echo "`date` fluxx wurde beendet" >> /em/log/fluxx_check.log
sleep 10
/em/fluxx/fluxx.x86
echo "`date` fluxx wurde neu Gestartet" >> /em/log/fluxx_check.log
echo "---------------------------------------------------------" >> 

/em/log/fluxx_check.log
fi

exit 0
Wenn ich nun zum test den Prozess fluxx.x86 mit pkill beende. Dann das Script ausführe, wird auch alles wunderbar ins log geschrieben, aber der Befehl "/em/fluxx/fluxx.x86" wird nicht ausgeführt zumindest gibt es keinen neuen Prozess wenn ich mit ps x nachschaue.

Führe ich den Befehl "/em/fluxx/fluxx.x86" aber manuell auf der command line aus startet der Prozess und fluxx läuft auch wieder...

Ich finde den Fehler einfach nicht. Jemand eine Idee oder Tip oder anderes Script?

Gruss
totta

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: überwachungsscript will nicht

Beitrag von gbotti » 10.02.2011 13:10:10

Wie wird denn dieses Script aufgerufen?
Cron???
Hat der Benutzer, der das Script aufruft überhaupt die entsprechenden Rechte?
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

Totta123
Beiträge: 77
Registriert: 09.10.2002 20:07:02

Re: überwachungsscript will nicht

Beitrag von Totta123 » 10.02.2011 14:17:29

also das script rufe ich per crontab auf:

* 5 * * * /em/script/fluxx_check.sh

Der User root ist der owner und die berechtigungen sind 755.

Mach ich was falsch ?

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: überwachungsscript will nicht

Beitrag von gbotti » 10.02.2011 15:15:10

Naja. Das Script wäre schon "Ausbaufähig", aber funktionieren sollte es so schon.

Eventuell solltest Du mal nachsehen, welche Meldungen vom Cron auflaufen.
Die Nachrichten werden als Mail an root gesandt. Ich lass mir die immer auf mein Konto weiterleiten... :)
Wenn Du keine Mailweiterleitung eingerichtet hast ist es am einfachsten mit Debianmutt die Mails abzurufen.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: überwachungsscript will nicht

Beitrag von rendegast » 10.02.2011 15:19:38

Vorschläge zur Vereinfachung:

Code: Alles auswählen

count=$(ps aux | grep -v grep | grep -c fluxx.x86)
if [ "$count" -lt 1 ];    # Programm fluxx.x86 laeuft nicht
then
ersetzen durch

Code: Alles auswählen

pidof flux.x86 || ...

Code: Alles auswählen

...
/em/fluxx/fluxx.x86
echo "`date` fluxx wurde neu Gestartet" >> /em/log/fluxx_check.log
echo "---------------------------------------------------------" >>

/em/log/fluxx_check.log
ändern in

Code: Alles auswählen

...
/em/fluxx/fluxx.x86
echo "$(date) fluxx wurde neu Gestartet
---------------------------------------------------------
" >> /em/log/fluxx_ch
resp.

Code: Alles auswählen

...
/em/fluxx/fluxx.x86  &&  echo "$(date) fluxx wurde neu Gestartet
---------------------------------------------------------
" >> /em/log/fluxx_ch


Zum Nichtausführen von /em/fluxx/fluxx.x86 durch cron, mal beobachten:

Code: Alles auswählen

/em/fluxx/fluxx.x86
->
strace  -o /tmp/LOG  -f  /em/fluxx/fluxx.x86
Ich tippe da auch auf Pfade, die für den angemeldeten root gelten, nicht aber bei Ausführung durch cron.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Totta123
Beiträge: 77
Registriert: 09.10.2002 20:07:02

Re: überwachungsscript will nicht

Beitrag von Totta123 » 10.02.2011 15:42:41

Soll das script dann so aussehen ?

Code: Alles auswählen

#!/bin/sh
pidof fluxx.x86 ||
pkill fluxx.x86
echo "`date` fluxx wurde beendet" >> /em/log/fluxx_check.log
sleep 10
/em/fluxx/fluxx.x86  &&  echo "$(date) fluxx wurde neu Gestartet
---------------------------------------------------------
" >> /em/log/fluxx_check.log
fi
exit 0

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: überwachungsscript will nicht

Beitrag von rendegast » 10.02.2011 15:58:41

Eher so:

Code: Alles auswählen

#!/bin/sh
pidof fluxx.x86 || {
  #pkill fluxx.x86
  #echo "`date` fluxx wurde beendet" >> /em/log/fluxx_check.log
  #sleep 10
  /em/fluxx/fluxx.x86  &&  echo "$(date) fluxx wurde neu Gestartet
---------------------------------------------------------
" >> /em/log/fluxx_check.log
}
exit 0
Wenn flux.x86 nach 'pidof' nicht läuft, muß es ja eigentlich auch nicht mehr gekillt werden.
Eventuell wären aber Aufräumarbeiten dort nötig, zBsp. lock-Dateien entfernen usw.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Totta123
Beiträge: 77
Registriert: 09.10.2002 20:07:02

Re: überwachungsscript will nicht

Beitrag von Totta123 » 10.02.2011 16:15:04

hmmm jetzt gehts, aber der grund ist mir nicht ganz klar, da die Sache die ich geändert hab eigentlich nichts damit zu tun hat. Ich hab im Crontab die Zeitangabe von " 5 * * * *" auf "*/5 * * * * *" geändert.

Wenn ich nun den Prozess kill, 5min warte, dann wird der Prozess wieder gestartet..... komisch komisch...

Danke trotzdem für die Hilfe, ich werde das Script dann mal anpassen.

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: überwachungsscript will nicht

Beitrag von gbotti » 11.02.2011 12:53:12

Ääähm...

5 * * * * würde schon auch gehen. Dann wird das Script aber jede Stunde zur 5. Minute (also 12:05, 13:05, 14:05,...) ausgeführt.
*/5 sagt aus, dass es alle 5 (in deinem Fall) Minuten ausgeführt werden soll...
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

Antworten