Crontab

Chris -  
 Utilisateur anonyme -
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

  1. kmf
     
    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
  2. Dr. Doud
     
    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
    1. Utilisateur anonyme
       
      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
    2. Dr. Doud
       
      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
      1. Utilisateur anonyme > Dr. Doud
         
        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
      2. Utilisateur anonyme > Dr. Doud
         
        ah mais attends, v'là que je vois!

        c'est toi le posteur initial ou pas?
        0
  3. Dr. Doud
     
    Ben non ! Pourquoi ?
    0
    1. Utilisateur anonyme
       
      ben parce que c'est mal :)

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

      Enfin bon ça dépend des cas, aussi...
      0
      1. Dr. Doud > Utilisateur anonyme
         
        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
      2. Utilisateur anonyme > Utilisateur anonyme
         
        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