Déterminer un Shell pour tâche cron

Résolu
Bonjour,
dans quel fichier peut-on déterminer le shell qui sera utilisé lors du lancement de scripts via la crontab?
Merci d'avance.

4 réponses

  1. salut,

    dans le script, sur la première ligne, à l'aide du shebang.
    #!/chemin/shell
    1. Merci pour la réponse,
      mais j'ai l'impression que l'environnement n'est pas le même...
      j'ai pourtant mis dans mon script

      #!/bin/csh
      source ~/.cshrc

      ...
      ...
      ...

      Je précise que tout marche bien si je lance le scrpit 'manuellement"
      1. j'ai l'impression
        ce n'est pas très objectif!
        quelle(s) observation(s) te donne(nt) cette impression?
      2. Contributeur
        Salut,

        source ~/.cshrc
        Tu devrais mettre le chemin complet vers ton .cshrc, il n'est pas dit qu'à ce stade la crontab reconnaisse le "~" ;-\

        Donc soit ${HOME}/.cshrc soit /home/${LOGNAME}/.cshrc
      3. Désolé pour l'imprécision de ma réponse,

        je lance:

        ./monsript.csh


        ou une version bash

        ./monscript.sh


        Dans les deux cas ça marche , malgré un warning:

        Fontconfig error: Cannot load default config file


        j'ai pourtant vérifié mon /etc/fonts ...
        Bref, ça ne gêne pas la bonne execution

        Les même scripts testés via la crontab donnent cette erreur pour bash:

        Fontconfig error: Cannot load default config file


        qui cette fois-ci est fatale, le script s'arrete.

        pour csh l'erreur est la suivante:

        USER: Undefined variable.
    2. Bon, ça avance un peu mais c'est toujours pas ça...
      Le fait que script s'arrête c'était à cause de ma redirection:

      monscript.csh 2>monfichier.log


      Je savais pas...

      Mais j'ai une nouvelle erreur, qui survient toujours ( et uniquement) depuis le lancement cron:

      <code>
      [1] Broken pipe
      [2] Broken pipe
      ....
      [16] Broken pipe

      [x] = est le numéro du process que j'ai lancé (j'en lance plusieurs à la fois)
      1. Contributeur
        Euh... sans voir le script, malgré nos talents extralucides, difficile de t'aider ;-(
    3. Après avoir comparé des choses comme:

      printenv


      et cette ligne dans ma crontab :

      15 12 * * * printenv > ~/cronenv.txt


      ==> cat ~/cronenv.txt

      Après avoir suivi les bon conseils de zipe31,

      j'ai compris que dans mes scripts, il y avait 2 différentes versions d'un même logiciel. une seule était bonne.
      Merci pour vos réponses!