ragazzo
Goto Top

Restart mit Cron ?

Ich beschäftige mich jetzt schon mehrere Stunden mit dem Thema und habe im Netz auch keine brauchbaren Lösungsansatz gefunden.
Vielleicht weiss jemand aus der Community Rat.

Um einen bestimmten Prozess zu starten benötige ich erst einen Restart einer Linux-Maschine.
Hierzu wollte ich die Crontab wie folgt verwenden:

15 0 * * * root /sbin/shutdown -r now

Leider klappt es trotz Root nicht.
Auf der Konsole klappt es immer....
Kann mir jemand sagen warum ?

Oder sehe ich den Wald vor lauter Bäume nicht?

Gruß Ragazzo

Content-ID: 101704

Url: https://administrator.de/contentid/101704

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

Alphavil
Alphavil 13.11.2008 um 09:22:59 Uhr
Goto Top
Mit einem ähnlichen Problem beschäftige ich mich auch gerade.

Problem ist das wenn du etwas per Cron ausführst du andere Umgebungspfade hast als wenn du es manuell auf der Konsole ausführst.

Habe aus einem anderen Forum folgenden Tipp bekommen:
1. normal als root einloggen
2. echo $PATH eingeben
3. die Ausgabe davon in die Crontab oben einfügen: PATH=<AUSGABE>

Dann sollten alle Scripte so laufen wie als angemeldeter root-Benutzer.
Ragazzo
Ragazzo 13.11.2008 um 09:44:48 Uhr
Goto Top
Leider hat dies keine Abhilfe gebracht face-sad

SHELL=/bin/sh
#PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
PATH=/sbin:/usr/sbin:/usr/local/sbin:/opt/kde3/sbin:/opt/gnome/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#

# automatischer Restart um xx Uhr
         38      9       *       *       *       root /sbin/shutdown -r now

Weder mit dem alten noch mit dem neuen PATH hat es funktioniert.

Ich versuche es mal mit einer ausgelagerten Skript-Datei.

Oder hat jemand andere Lösung?
crazyhifi
crazyhifi 13.11.2008 um 10:00:04 Uhr
Goto Top
Hallo erstmal, hier mein erstes post nachdem ich schon lange mit lese. ;)
Wie hast du den cronjob angelegt?
Direkt in der crontab (crontab -e)?
Unter welchen user, root?
Versuch mal folgendes:
als root Anmelden und mit "crontab -e" deinen cronjob anlegen, dabei lässt du aber
das root weg, da der cronjob direkt unter root angelegt wird, wird er auch mit root-rechten gestartet. Danach machst mal noch einen "rccron restart" um den deamon neu zu starten, evtl. hat der deamon die neue crontab nicht eingelesen. /sbin/shutdown -r now sollte eigentlich Funktionieren. ;)
Ragazzo
Ragazzo 13.11.2008 um 10:10:39 Uhr
Goto Top
Danke für die Info.

Mit dem Restart war schon fast der richtige Weg gewesen, den man eigentlich nicht braucht, wenn man lange genug wartet.

Das Problem war, dass ich zu Testzwecken die Zeit auf die nächste Minute gestellt habe.
Dabei muss doch der Cron-Daemon erstmal die neue Tabelle einlesen, was er jede Minute macht..... face-sad
Daher klappte das Script nicht.

Das mit dem Root stammt tatsächlich aus dem "Rumprobieren".

Der Code-Schnipsel ist aus der System-Cron im ETC-Verzeichnis gewesen.

Dennoch vielen Dank für die Unterstützung.

Gruß Ragazzo
theton
theton 13.11.2008 um 10:33:33 Uhr
Goto Top
Sofern sich nicht gerade ein Kernel-Modul aufhängt, ist mit Sicherheit kein Restart des Servers notwendig um irgendeinen Prozess zu starten. Wir sind doch hier nicht bei Windows. Und wenn sich wirklich täglich ein Kernel-Modul aufhängt, dann sollte man eher das Problem lösen anstatt einen so sinnlosen Workaround zu nutzen.
Ragazzo
Ragazzo 13.11.2008 um 10:43:29 Uhr
Goto Top
Zitat von @theton:
Wir sind doch hier nicht bei Windows....

Sehr richtig face-smile))

... aber im Zeitalter der Virtualisierung & Co. kann es auch für andere Prozesse / Maintenance ein Restart notwendig sein face-smile