[crontab] script werkt niet

Pagina: 1
Acties:

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05-2025
Het onderstaande scripje laat ik uitvoeren mbv een cronjob. In de log file die aangemaakt wordt zie ik dat het script wordt uitgevoerd, maar de zenity (gnome2) dialoog wordt niet getoond. Als ik dit script met de hand run werkt het wel.
code:
1
2
3
4
#!/bin/bash
DATE=`date`
echo "test-script was run at $DATE" >> ~/test-script.log
/usr/local/garnome/bin/zenity --info --text="Bericht" &

Mijn crontab ziet er zo uit:
code:
1
2
3
4
SHELL=/bin/bash
MAILTO=username
#min    hour    dom     month   dow             command
25      17      *       *       mon,tue,thu,fri /home/username/bin/test-script

[ Voor 9% gewijzigd door Sir Isaac op 14-05-2004 16:46 ]


  • Expander
  • Registratie: Februari 2001
  • Niet online
Misschien wordt het script gerund als root.

Dat kan tot gevolg hebben dat de app niet met de X Server mag connecten. Maar de oplossing heb ik niet, misschien eerst een 'su username' of sudo gebruiken.

Expanding the inexpandable


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Waarschijnlijk werkt dat niet omdat cronjobs geen actieve tty krijgen.
Ik ken dat zenity niet, maar als dat iets interactiefs is, weet ie niet
waar die met z'n interactieve interface heen moet :P

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • ecageman
  • Registratie: September 2001
  • Laatst online: 10-07-2025
Ik denk dat het te maken heeft met het feit dat je iets in de background wil opstarten met het script. Cron start namelijk voor de job een shell op, en vervolgens gaat hij het script uitvoeren. In principe is het script zelf klaar en wordt de shell ook afgesloten. Dit betekent dat alle childs die in die shell opgestart zijn ook verdwijnen. Je kunt dit tegen gaan door met nohup te werken. (zet nohup voor je background commando)


nohup
Run a command immune to hangups, runs the given COMMAND with hangup signals ignored, so that the command can continue running in the background after you log out.

EDIT: Het zou inderdaad ook te maken kunnen hebben met wat u_nix_we_all zegt.

[ Voor 7% gewijzigd door ecageman op 14-05-2004 16:59 ]

AMD Athlon 2800+, MSI K7N2Delta-L, 1024MB PC3200, SB Audigy2, XFX GF4MX440, BenQ DVD+-RW, NEC 1300A DVD+-RW, 2x WD 120GB 8mb, 2x Maxtor 250GB, Chenbro Gaming Bomb, Tagan 480W, 17" Iiyama monitor


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Sir Isaac schreef op 14 mei 2004 @ 16:45:
code:
1
2
3
4
#!/bin/bash
DATE=`date`
echo "test-script was run at $DATE" >> ~/test-script.log
/usr/local/garnome/bin/zenity --info --text="Bericht" &

<knipperdeknip>
Als zenity een X display nodig heeft, moet je die eens vanuit dit script meegeven,
dat neemt cron namelijk ook niet mee, dus de laatste regel in je script veranderen in:
code:
1
DISPLAY=localhost:0 /usr/local/garnome/bin/zenity --info --text="Bericht" &

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05-2025
Bedankt voor jullie suggesties. Helaas werkt noch het definiëren van de DISPLAY variabele, noch het gebruik van nohup, noch de combinatie van beide.

  • Insanergy
  • Registratie: Juli 2001
  • Laatst online: 29-11-2025
Staan er geen foutmeldingen in je root mail / cron-log?

[ Voor 3% gewijzigd door Insanergy op 14-05-2004 23:45 ]

But I thought YOU did the backups...


  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 19-02 16:44

BoAC

Memento mori

Sir Isaac schreef op 14 mei 2004 @ 16:45:
code:
1
2
3
4
SHELL=/bin/bash
MAILTO=username
#min    hour    dom     month   dow             command
25 17 * * mon,tue,thu,fri /home/username/bin/test-script
Hey had gisteren zelfde probleem met die tabel ;)

volgens mij moet hij er zo uitzien (ik was de gebruiker vergeten :( ):
code:
1
25 17 * * mon,tue,thu,fri root /home/username/bin/test-script

Hier geldt dan dat root degene is die het script uitvoert uiteraard ;)

Heb net de 'man 5 crontab' bekeken maar daar staat die user niet bij :?
Misschien is die ook outdated: 24 Januari 1994 ;)

[ Voor 12% gewijzigd door BoAC op 15-05-2004 11:11 ]


  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05-2025
[quote]BoAC schreef op 15 mei 2004 @ 11:08:
[...]
volgens mij moet hij er zo uitzien (ik was de gebruiker vergeten :( ):
code:
1
25 17 * * mon,tue,thu,fri root /home/username/bin/test-script

Hier geldt dan dat root degene is die het script uitvoert uiteraard ;)

Dat geldt niet voor de crontab van individuele gebruikers. Een gewone gebruiker kan uiteraard niet kiezen met welk uid hij zijn programma's draait.

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 19-02 16:44

BoAC

Memento mori

Oh wacht ff. Ik bedoelde /etc/crontab.
Waar zet je hem dan neer?
Bij mijn Gentoo-bak is dat /var/spool/crontabs en dan is de filename de user (als ik webmin mag geloven ;) )

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05-2025
De mijne staat in /var/spool/cron/crontabs/<user>
Pagina: 1