cron-job wird nicht mehr ausgeführt [gelöst]

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
Durruti
Beiträge: 207
Registriert: 16.04.2006 01:54:44

cron-job wird nicht mehr ausgeführt [gelöst]

Beitrag von Durruti » 04.10.2007 14:11:48

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
Zuletzt geändert von Durruti am 04.10.2007 17:35:59, insgesamt 1-mal geändert.

Benutzeravatar
HELLinG3R
Beiträge: 1328
Registriert: 15.04.2004 07:54:33

Beitrag von HELLinG3R » 04.10.2007 14:45:01

Wenn die anderen Cronscripte funktionieren, liegt der Fehler warscheinlich in deinem Script, evtl an veränderten Umgebungsvariablen.

Bau einfach mal ein paar

Code: Alles auswählen

echo `date` hier passiert was >> /home/joe/debugscript.log
ein. Damit kannst du herausbekommen, was genau zwickt.
Perl macht Spass.

Benutzeravatar
MSfree
Beiträge: 11641
Registriert: 25.09.2007 19:59:30

Beitrag von MSfree » 04.10.2007 15:06:48

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.

Benutzeravatar
Durruti
Beiträge: 207
Registriert: 16.04.2006 01:54:44

Beitrag von Durruti » 04.10.2007 16:04:20

Also, crontab -l gibt aus (was ich eh schon wußte)

Code: Alles auswählen

10 * * * * /usr/bin/abfrage.sh
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...

Benutzeravatar
Durruti
Beiträge: 207
Registriert: 16.04.2006 01:54:44

Beitrag von Durruti » 04.10.2007 16:06:51

HELLinG3R hat geschrieben:Wenn die anderen Cronscripte funktionieren, liegt der Fehler warscheinlich in deinem Script, evtl an veränderten Umgebungsvariablen.

Bau einfach mal ein paar

Code: Alles auswählen

echo `date` hier passiert was >> /home/joe/debugscript.log
ein. Damit kannst du herausbekommen, was genau zwickt.
Ich hab sonst keine cronscripte :-)
äh, "echo 'date' hier passiert was"?? Das kapier ich nicht ;-)

Benutzeravatar
MSfree
Beiträge: 11641
Registriert: 25.09.2007 19:59:30

Beitrag von MSfree » 04.10.2007 16:22:42

Durruti hat geschrieben:Das sollte doch wohl bedeuten, daß jede Stunde um *.10 Uhr das abfrage.sh skript aufgerufen wird.
Richtig
Und wie gesagt, von der Konsole kann ich abfrage.sh starten. Das macht doch irgendwie keinen Sinn, oder?
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.

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
Ein Postfach mit meinem usernamen existiert nicht, ich glaub ich hatte auch keinen mailserver installiert...
exim wird eigendlich immer mitinstalliert, vermutlich ist der aber nicht richtig eingerichtet.

Benutzeravatar
Durruti
Beiträge: 207
Registriert: 16.04.2006 01:54:44

Beitrag von Durruti » 04.10.2007 16:49:10

Ah, ok. Wieder was gelernt. Sollte mich wohl mal mit DISPLAY usw. etwas auseinandersetzen.
Also, hab's jetzt geändert und cron nochmal neu gestartet (einfach so). So in 20 Minuten etwa weiß ich dann mehr :-).
Vielen Dank erstmal und schönen Gruß

Benutzeravatar
Durruti
Beiträge: 207
Registriert: 16.04.2006 01:54:44

Beitrag von Durruti » 04.10.2007 16:51:38

MSfree hat geschrieben: exim wird eigendlich immer mitinstalliert, vermutlich ist der aber nicht richtig eingerichtet.
Ach so, genau, das war eins von denen die ich neulich entfernt hab, weil ich dachte das brauch ich eh nie.

Benutzeravatar
Durruti
Beiträge: 207
Registriert: 16.04.2006 01:54:44

Beitrag von Durruti » 04.10.2007 17:13:57

perfekt!

Antworten