Forum Linux.mandriva xmms et cron

Posté par  .
Étiquettes : aucune
0
16
juin
2005
mon probleme est le suivant
je veux lancer automatiquement des playlists m3u avec xmms

je me suis donc tourné vers cron

27 15 * * * /usr/bin/xmms /home/sylvain/public_html/autoradio/playlist/16_06_2005_00.m3u
et la pas de probleme

mais comme le nom des playlist change tous les jours exemple : 17_06_2005_00.m3u ou 18_06_2005_00.m3u ....etc

j'ai essaye
27 15 * * * /usr/bin/xmms /home/sylvain/public_html/autoradio/playlist/'date +%d'_'date +%m'_'date +%Y'_00.m3u

et ben flop total
si qql1 a une idée ...
  • # shell

    Posté par  (site web personnel) . Évalué à 2.

    Attention au shell, je n'y connait pas grand chose en shell (je n'utilise que des fonctions basiques de bash) mais crontab(5) dit
    Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh [...]
    Donc vérifie que ta ligne marche bien sous sh. Je pense à tes quotes. Ne serais-ce pas plutôt des backquotes?

    Sinon fait un script avec #!/bin/bash au début.
    • [^] # Re: shell

      Posté par  . Évalué à 1.

      je viens de changer le cron
      10 16 * * * /home/sylvain/tachecron.sh

      et un script tachecron.sh qui marche :

      #!/bin/bash
      /usr/bin/xmms /home/sylvain/public_html/autoradio/playlist/`date +%d`_`date +%m`_`date +%Y`_00.m3u

      mais le cron ne veut pas le lancer

      pourquoi ? svp

      merci d'avance
  • # xmms et cron

    Posté par  . Évalué à 1.

    C'est normal que ca ne marche pas. Si tu fais un : echo /usr/bin/xmms /home/sylvain/public_html/autoradio/playlist/'date +%d'_'date +%m'_'date +%Y'_00.m3u
    il va te renvoyer : /usr/bin/xmms /home/sylvain/public_html/autoradio/playlist/date +%d_date +%m_date +%Y_00.m3u

    Il faut que tu remplace tes simple quotes par des backs quotes :
    /home/sylvain/public_html/autoradio/playlist/`date +%d`_`date +%m`_`date +%Y`_00.m3u
  • # DISPLAY

    Posté par  . Évalué à 2.

    Pour que XMMS se lance, il faut qu'il affiche l'interface graphique sur un DISPLAY...

    Donc il y a 2 choses nécéssaires pour lancer xmms dans cron :
    1. que le user soit logué graphiquement avec un display :0.0 par exemple
    2. que le script cron ait initialisé la variable DISPLAY avec le bon affichage

    Donc essaye de mettre DISPLAY=:0.0 dans ton crontab.

    Puis lorsque tu es logué il apparaîtra...

    Sinon pour éviter ce tracas, utilise mpg123 (qui est en ligne de commande, et ne nécessite pas d'affichage graphique) à la place de xmms
    • [^] # OK CA MARCHE

      Posté par  . Évalué à 1.

      mon cron
      10 16 * * * DISPLAY=:0 /home/sylvain/tachecron.sh

      mon tachecron :
      #!/bin/bash
      /usr/bin/xmms /home/sylvain/public_html/autoradio/playlist/`date +%d`_`date +%m`_`date +%Y`_00.m3u


      et c'est impeccable

      merci a tous
  • # pour xmms ?

    Posté par  . Évalué à 1.

    ton cronjob ne pourra pas fonctionner si aucun display n'est disponible.

    tourne toi plutôt vers un player en ligne de commande et prépare d'abord un script qui fonctionne et c'est lui que tu lanceras avec cron.
    • [^] # Re: pour xmms ?

      Posté par  . Évalué à 1.

      mais alors pourquoi quand je lance tachecron.sh
      la playlist demarre sans probleme
      et pas avec la tache cron ?

      sinon j'ai bien remplace les quotes en backquotes
      • [^] # crontab et %

        Posté par  . Évalué à 1.

        Attention au caractère % dans les lignes de ta crontab (il y a un piège).

        Extrait de man 5 crontab :

        Percent-signs (%) in the command,
        unless escaped with backslash (\), will be changed into newline charac-
        ters, and all data after the first % will be sent to the command as
        standard input. There is no way to split a single command line onto
        multiple lines, ala the shell's trailing "\".


        En français : les % (non précédés d'un \ )sont remplacés par des retours à la ligne, et les caractères qui les suivent sont envoyés sur l'entrée standard de ta commande.

        Donc, il te fallait remplacer tous les % se trouvant sur les lignes de ta crontab par des \%

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.