[GELÖST]:cronjob für normale user

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
cartun
Beiträge: 234
Registriert: 19.06.2010 11:55:45
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

[GELÖST]:cronjob für normale user

Beitrag von cartun » 09.08.2010 18:47:05

Hey,

ich könnte zwar die Datei cronjob als root bearbeiten aber ich versuche es gerade als normaler user.
Mein Problem, ich möchte jede Minute (jetzt nur zum Testen) etwas ausführen, um zu schauen ob das auch klappt soll eine Meldung erscheinen.

Code: Alles auswählen

* * * * * xmessage "Hallo Welt!"
Meine selbst erstelle cronjob-Datei mit dem obigen Eintrag liegt in $home und die Datei habe ich mit:

Code: Alles auswählen

crontab -u dennis meincronjob
mit gegeben.
crontab -l gibt mir auch aus das der job angenommen wurde doch er wird nicht ausgeführt!
Hat jemand einen Ahnung warum?
Zuletzt geändert von cartun am 09.08.2010 20:47:16, insgesamt 1-mal geändert.

Benutzeravatar
feltel
Webmaster
Beiträge: 10476
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Re: cronjob für normale user

Beitrag von feltel » 09.08.2010 18:53:17

Hast Du vielleicht den obligatorischen abschließenden Zeilenumbruch in der Crontab vergessen? Ist ne häufige Stolperstelle.

cartun
Beiträge: 234
Registriert: 19.06.2010 11:55:45
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: cronjob für normale user

Beitrag von cartun » 09.08.2010 18:57:42

Hey,

meinst du Semikolon?
Habe ich gemacht aber nichts kommt.. :(

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Re: cronjob für normale user

Beitrag von Snoopy » 09.08.2010 18:59:17

Hi,

nein er meint eine Leerzeile.
Bei Crontabs sollte als letztes eine Leerzeile sein.

In Deinem Beispiel quasi so

Code: Alles auswählen

* * * * * xmessage "Hallo Welt!"


Benutzeravatar
feltel
Webmaster
Beiträge: 10476
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Re: cronjob für normale user

Beitrag von feltel » 09.08.2010 19:00:23

Neee, ne Crontab muss als letzte Zeile eine Leerzeile enthalten, damit cron die Crontab ausführt.
man crontab hat geschrieben:cron requires that each entry in a crontab end in a newline character.
If the last entry in a crontab is missing the newline, cron will con‐
sider the crontab (at least partially) broken and refuse to install it.

cartun
Beiträge: 234
Registriert: 19.06.2010 11:55:45
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: cronjob für normale user

Beitrag von cartun » 09.08.2010 19:04:10

Hey,

also die letzte Zeile soll "Leer" sein, habe ich gemacht... nichts passiert...
Wie kann man das noch testen ob mein Job überhaupt angenommen wird?

Benutzeravatar
feltel
Webmaster
Beiträge: 10476
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Re: cronjob für normale user

Beitrag von feltel » 09.08.2010 19:05:37

Hast Du nach der Änderung die crontab neu eingelesen

Code: Alles auswählen

crontab -r
crontab /meine/crontabdatei
und dann mit

Code: Alles auswählen

crontab -l
müssten die Jobs aufgelistet werden

Benutzeravatar
format_c
Beiträge: 188
Registriert: 23.01.2008 14:24:17
Kontaktdaten:

Re: cronjob für normale user

Beitrag von format_c » 09.08.2010 19:07:23

Meines Erachtens fehlt für cron die Information für den X-Server.
In der ersten Zeile der Crontab

Code: Alles auswählen

DISPLAY=":0.0"
hinzufügen.

Gruß Alex

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: cronjob für normale user

Beitrag von cirrussc » 09.08.2010 19:12:16

Das stimmt. Ich habe die Display Variable für X-Programme auch setzen müssen:
DISPLAY=:0
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

cartun
Beiträge: 234
Registriert: 19.06.2010 11:55:45
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: cronjob für normale user

Beitrag von cartun » 09.08.2010 19:16:52

Hey,

aha... habe nun:

Code: Alles auswählen

* * * * *  DISPLAY=":0.0"; xmessage "Hallo!" 

eingetragen. Cronjob gelöscht und wieder eingepflegt aber da passiert nichts... rein gar nichts..
Habt ihr ein Beispiel wie ich noch testen kann ob mein Job überhaupt ausgeführt wird?

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: cronjob für normale user

Beitrag von cirrussc » 09.08.2010 19:21:26

Ob das so funktioniert weiß ich nicht.
Wenn die Variable aber oben schon Initialisiert wird, klappt es auf jeden Fall:

Code: Alles auswählen

DISPLAY=:0
#
0 0 * * 7     /usr/bin/xmessage "Hallo!" 
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

cartun
Beiträge: 234
Registriert: 19.06.2010 11:55:45
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: cronjob für normale user

Beitrag von cartun » 09.08.2010 19:28:49

Hey,

ach, also muss ein absoluter Pfad zu xmessage angegeben werden?
Okay, probiere es gerade mal aus....

Hey.. WOW! Das klappt ja! Sauber!
Wieso muss denn der Xserver Display mitbekommen? Ruft der selbst nicht die $DISPLAY auf?

Und wo landet mein Job am Ende überhaupt? In der etc/crontab scheint es ja nicht gespeichert zu werden

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: cronjob für normale user

Beitrag von cirrussc » 09.08.2010 19:49:19

cartun hat geschrieben:Wieso muss denn der Xserver Display mitbekommen? Ruft der selbst nicht die $DISPLAY auf?
Die ist dort noch gar nicht gesetzt.

Wo die Jobs dann gespeichert werden, steht nirgends beschrieben.

Einiges ist auch hier beschrieben:

http://wiki.ubuntuusers.de/cron
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

suno
Beiträge: 354
Registriert: 25.07.2008 17:33:40

Re: cronjob für normale user

Beitrag von suno » 09.08.2010 19:54:20

cartun hat geschrieben: Wieso muss denn der Xserver Display mitbekommen? Ruft der selbst nicht die $DISPLAY auf?
Jeder Prozess startet in einem Environment. In obigen Fall musstest du dann eben DISPLAY im aufrufenden Environment setzen.

http://www.markus-gattol.name/ws/time.h ... _variables

cartun
Beiträge: 234
Registriert: 19.06.2010 11:55:45
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: cronjob für normale user

Beitrag von cartun » 09.08.2010 20:46:54

Hey,

alles klar, habe euch echt zu danken!

Antworten