cron-job wird nicht mehr ausgeführt [gelöst]
cron-job wird nicht mehr ausgeführt [gelöst]
Hi Forum.
Ich hab mir vor ner Weile ein script gebastelt, daß mir das Hintergrundbild wechseln soll.
Ihr könnt euch sicherlich vorstellen, wie essentiell und unverzichtbar dieses script für mich ist... bisher hat das auch immer super mit cron funktioniert.
Jetzt hab ich mich letztens mal dran gemacht ein paar Dienste zu entfernen und etwa zur gleichen Zeit habe ich den Befehl "Esetroot" im skript durch "fbsetbg" ersetzt.
Also, ums auf den Punkt zu bringen, wenn ich mein skript aus der Konsole aufrufe funktioniert es, aber automatisch nicht mehr.
Bei den laufenden Diensten ist cron aber aufgeführt und ich hatte an der crontab auch nichts geändert!
Woran kann das jetzt liegen? Wo finde ich eventuelle Fehlermeldungen? Braucht cron noch andere Dienste, die ich vielleicht im Übereifer entfernt habe?
Vielen Dank und Grüße
Durruti
Ich hab mir vor ner Weile ein script gebastelt, daß mir das Hintergrundbild wechseln soll.
Ihr könnt euch sicherlich vorstellen, wie essentiell und unverzichtbar dieses script für mich ist... bisher hat das auch immer super mit cron funktioniert.
Jetzt hab ich mich letztens mal dran gemacht ein paar Dienste zu entfernen und etwa zur gleichen Zeit habe ich den Befehl "Esetroot" im skript durch "fbsetbg" ersetzt.
Also, ums auf den Punkt zu bringen, wenn ich mein skript aus der Konsole aufrufe funktioniert es, aber automatisch nicht mehr.
Bei den laufenden Diensten ist cron aber aufgeführt und ich hatte an der crontab auch nichts geändert!
Woran kann das jetzt liegen? Wo finde ich eventuelle Fehlermeldungen? Braucht cron noch andere Dienste, die ich vielleicht im Übereifer entfernt habe?
Vielen Dank und Grüße
Durruti
Zuletzt geändert von Durruti am 04.10.2007 17:35:59, insgesamt 1-mal geändert.
Wenn die anderen Cronscripte funktionieren, liegt der Fehler warscheinlich in deinem Script, evtl an veränderten Umgebungsvariablen.
Bau einfach mal ein paar ein. Damit kannst du herausbekommen, was genau zwickt.
Bau einfach mal ein paar
Code: Alles auswählen
echo `date` hier passiert was >> /home/joe/debugscript.log
Perl macht Spass.
crontab -l listet die Cron-Tabelle aus. Nicht ausführbare Befehle sollten übrigens als Fehlmeldung in deinem lokalen Postfach landen (/var/mail/Benutzername).
Ein Problem, das ich hier aber sehe, ist die Tatsache, daß du einen Befehl ausführen willst, der auf das X11-Windowsystem zugreift. Hierzu wird auf die Umgebungsvariable DISPLAY zurückgegriffen, ist diese nicht gesetzt, läuft der Befehl ins Leere.
Ganz davon abgesehen, gibt es noch MIT-Magic-Cookies, .Xauthority und einen X-Server, der nicht auf TCP-Verbindungen lauscht, als mögliche Fehlerquellen.
Ein Problem, das ich hier aber sehe, ist die Tatsache, daß du einen Befehl ausführen willst, der auf das X11-Windowsystem zugreift. Hierzu wird auf die Umgebungsvariable DISPLAY zurückgegriffen, ist diese nicht gesetzt, läuft der Befehl ins Leere.
Ganz davon abgesehen, gibt es noch MIT-Magic-Cookies, .Xauthority und einen X-Server, der nicht auf TCP-Verbindungen lauscht, als mögliche Fehlerquellen.
Also, crontab -l gibt aus (was ich eh schon wußte)
Das sollte doch wohl bedeuten, daß jede Stunde um *.10 Uhr das abfrage.sh skript aufgerufen wird.
Und wie gesagt, von der Konsole kann ich abfrage.sh starten. Das macht doch irgendwie keinen Sinn, oder?
Ein Postfach mit meinem usernamen existiert nicht, ich glaub ich hatte auch keinen mailserver installiert...
Code: Alles auswählen
10 * * * * /usr/bin/abfrage.sh
Und wie gesagt, von der Konsole kann ich abfrage.sh starten. Das macht doch irgendwie keinen Sinn, oder?
Ein Postfach mit meinem usernamen existiert nicht, ich glaub ich hatte auch keinen mailserver installiert...
Ich hab sonst keine cronscripte :-)HELLinG3R hat geschrieben:Wenn die anderen Cronscripte funktionieren, liegt der Fehler warscheinlich in deinem Script, evtl an veränderten Umgebungsvariablen.
Bau einfach mal ein paarein. Damit kannst du herausbekommen, was genau zwickt.Code: Alles auswählen
echo `date` hier passiert was >> /home/joe/debugscript.log
äh, "echo 'date' hier passiert was"?? Das kapier ich nicht ;-)
RichtigDurruti hat geschrieben:Das sollte doch wohl bedeuten, daß jede Stunde um *.10 Uhr das abfrage.sh skript aufgerufen wird.
Doch, es macht sogar extrem viel Sinn. Die Shell, von der aus du das Skript manuell ausführst, hat die Umgebungsvariable DISPLAY gesetzt und verweist auf deinen X-Server.Und wie gesagt, von der Konsole kann ich abfrage.sh starten. Das macht doch irgendwie keinen Sinn, oder?
Im abfrage.sh ist diese Variable nicht gesetzt. Umgebungsvariablen werden immer vom Vaterprozeß auf den Kindprozeß vererbt. Wenn du also von der Konsole startest, erbt abfrage.sh die Umgebungsvariablen der Konsole. Wenn von cron gestartet wird, erbt abfrage.sh nur die Umgebung, mit der cron läuft und die kennt mit absoluter Sicherheit die Variable DISPLAY nicht.
Pack mal die folgenden zwei Zeilen in die Datei abfrage.sh ziemlich weit oben:
DISPLAY=:0.0
export DISPLAY
exim wird eigendlich immer mitinstalliert, vermutlich ist der aber nicht richtig eingerichtet.Ein Postfach mit meinem usernamen existiert nicht, ich glaub ich hatte auch keinen mailserver installiert...