Crontab

Fermé
Chris - 11 nov. 2004 à 18:56
 Utilisateur anonyme - 2 févr. 2005 à 22:29
Slt à tous!!!

Je suis deja venu y a pas longtps pour dmeander de l'aide sur l'utilisation de cron . Or je n'arrive pas a faire fonctionner les comandes que je lui entre. Y aurait-il un redemmaragfe necessaire de cron pour prendre en compte les mises a jours?

Pourriez-vous me montrer explicitement la manipe sur un exemple svp.

Exemple:
lance xmule ts les jours à 2h05 du matin.
Et l'arreter ts les jours à 16h.
(Il y a donc deux instructions)


MErci beaucuoup d'avance.

Chris

4 réponses

Il est peut-etre mieux de redemarrer le cron daemon pour relire le fichier
/etc/crontab. Typiquement c'est quelque chose comme ca:

/etc/rc.d/init.d/cron stop
/etc/rc.d/init.d/cron start

Souvent si on change des fichiers de config pour un daemon (autres exemples: xinetd, sshd, lpd, ...) il vaut mieux le redemarrer comme indique ci-dessus (remplacer cron par le nom du script pour ce daemon dans /etc/rc.d/init.d/). Sinon il est possible que le daemon ne tient pas compte des modifications.

Il faut aussi etre sur que le cron daemon tourne sur ta machine par default.
A verfier avec (avant de faire les deux lignes ci-dessus):

/etc/rc.d/init.d/cron status

S'il ne tourne pas tu peux le demarrer pour une fois avec la ligne avec start. Il doit y avoir un config tool graphique sur ta machine pour gerer les services (c.-a-d. les daemons) ou on peut definir que le cron-daemon demarre par default apres le boot.
0
merci beaucoup.
0
Salut,

Alors voilà à peu près ce que j'ai poundu comme ligne de commande dans mon cron (pour que xmule redemarre automatiquement après un plantage lorsque je ne suis pa là) :
05,10,15,20,25,30,40,45,50 * * * * ps | grep -v grep | grep -q xmule && echo "xmule is running" > /tmp/xmule.log || /usr/local/bin/xmule &

Il n'y a pas de fichier log produit (car xmule ne tourne pas ;-) ). Par contre je reçois systématiquement un mail de root (Cron Daemon) qui me dit :

(xmule:4840): Gtk-WARNING **: cannot open display:

Qu'est-ce qui est mal fait ?

D'avance merci,
Dr. Doud
0
Utilisateur anonyme
1 févr. 2005 à 13:55
bon alors on va être un peu méthodique hein.....

déjà tu mets */5 ça sera beaucoup plus propre

maintenant côté commande, on a un /usr/local/bin/xmule qui a une bonne gueule de programme X
on a par ailleurs un message dans le goût "cannot open display"

programme X... display... programme X...... display..... mais à propos.... _quel_ display?

si t'indiques pas à ton programme X s'il doit s'ouvrir sur :0.0 (par exemple) il va avoir comme un problème.

A toi de voir dans le man de xmule la syntaxe des options
0
Merci Hector pour cette réponse. Je pense qu'un script de ce genre pourrait solutionner le problème :

#!/bin/bash
export DISPLAY=:0.0
/usr/local/bin/xmule &

Il y a un man de xmule ???!!! Jamais entendu parler.

# man xmule
Il n'y a pas de page de manuel pour xmule.

# xmule --help
lance une autre instance de xmule

Dr. Doud
0
Utilisateur anonyme > Dr. Doud
1 févr. 2005 à 20:02
pour le man aucune idée, jamais installé xmule sur mon système

sinon tu peux même te passer d'un script en passant sur ta ligne de commande
DISPLAY=:0.0 ton_programme_x
0
Utilisateur anonyme > Dr. Doud
1 févr. 2005 à 20:37
ah mais attends, v'là que je vois!

c'est toi le posteur initial ou pas?
0
Ben non ! Pourquoi ?
0
Utilisateur anonyme
2 févr. 2005 à 00:28
ben parce que c'est mal :)

ça fait interférer les deux problèmes. Enfin bon c'est pas grave.
0
Utilisateur anonyme
2 févr. 2005 à 00:29
et puis c'est pas très poli envers le posteur initial.

Enfin bon ça dépend des cas, aussi...
0
Dr. Doud > Utilisateur anonyme
2 févr. 2005 à 20:37
Ah ben je suis désolé ; je ne savais pas.
Mah on va dire que comme ça les utilsateurs savent désormais que l'utilisateur qui lance les commandes du cron (root ?) ne connais pas forcément les variables d'environnement comme DISPLAY par exemple.
En tous cas, je te remercie pour ton aide Hector, et je présente mes plus pates excuses au posteur initial.

Dr. Doud
0
Utilisateur anonyme > Utilisateur anonyme
2 févr. 2005 à 22:29
non c'est pas root

c'est l'utilisateur dans le crontab duquel est la commande

$DISPLAY n'est pas exporté vers les autres environnements que celui dans lequel X tourne effectivement. Bref, normalement, faut être sous X pour qu'elle soit définie.

Donc dans un autre environnement, tu dois d'abord la fournir a la mano avant d'invoquer n'importe quelle application X (ou passer à l'application la bonne option, souvent elles admettent un -display=machinbidule ou -d ou --display)
0