PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daemons und Cronjobs



SirAbdul
10.11.04, 16:36
Hallo zusammen.
ich habe heute ein shell script geschrieben, welches anhand einer pid file ermittelt ob ein prozess noch läuft oder nicht. wenn er nicht merh läuft soll dieser neu gestartet werden.
Beispiel:

Dienst smpppd hat die PID 4711

Wenn die PID 4711 nicht mehr vorhanden ist in ps -A dann soll

/etc/init.d/smpppd start

ausgeführt werden.

Soweit so gut. Wenn ich das script "von hand" ausführe funktioniert es ohne probleme.

Allerdings macht ein solches Script auch nur Sinn, wenn es in einem CronJob läuft.
Wenn ich allerdings im crontab (mit crontab -e geöffnet) z.B. die Zeile

0,15,30,45 * * * * /path/to/script/pidtest.sh

eintrage, dann wird das script auch aus geführt (Ich generiere Logfiles mit Datum + Zeit angaben) nur der daemon wird nicht gestartet.
Stattdessen bekomm ich nur eine Mail vom Cron Daemon mit der Meldung:

Starting SMPPPD/etc/init.d/smpppd: startproc: command not found
..failed

So und das wars.

Kann es evtl. sein, das ein Cronjob keinen Daemon ausführen kann ?
Hier noch die Stelle, an welcher der Daemon gestartet werden soll:



#If the daemon is not running, start it.
if [ $LINES = 0 ]; then
echo "(Log)Starting the daemon" >> $LOG_FILE
OLDDIR=$PWD
cd /etc/init.d/
./smpppd start
else
echo "(Log)Daemon is up." >> $LOG_FILE
fi


Ich habe auch schon versucht den Start-Befehl direkt in den crontab zu schreiben. Also

23 * * * * /etc/init.d/smpppd start

Das funktioniert auch nicht und führt zur gleichen Fehlermeldung.
Danke schonmal für eure Zeit :)

Gruß,

SirAbdul

temir
10.11.04, 17:29
ganz schnelle Hilfe wäre: am Anfang des Scripts folgendes einzufügen:
# load ENV
. /etc/profile ## zw. '.' und '/' ein Blank

Sonst mit dem `export PATH=$PATH:/hier/mein/pfad`.

BloodyBullet
10.11.04, 19:42
Der cron-Daemon muss natürlich laufen.

MfG

SirAbdul
10.11.04, 19:57
ganz schnelle Hilfe wäre: am Anfang des Scripts folgendes einzufügen:
# load ENV
. /etc/profile ## zw. '.' und '/' ein Blank

Sonst mit dem `export PATH=$PATH:/hier/mein/pfad`.

Hm...
Was bewirkt das erste und wofür soll das zweite gut sein ?

Ich mein ich hatte vorher die gesamten Pfadangaben in VARs stehen.
Allerdings funktioniert es auch nicht, wenn ich, wie oben angegeben, die Pfad- und Befehlangaben direkt angebe. Also quasi das start Script von dem Daemon direkt ansteuere und nicht über variablen.

Zu BloodyBullet:
Natürlich läuft der cron Daemon, sonst würd ich ja schließlich auch keine mails von dem bekommen, oder ?