[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Crontab ne lance pas ma commande ou mon script [RESOLU]




Le 02/06/2019 à 10:45, Francois Lafont a écrit :
On 6/1/19 5:33 PM, Tulum wrote:

En rajoutant : XDG_RUNTIME_DIR=/run/user/1000 dans ma commande crontab cela fonctionne :

30 17 1 6 * XDG_RUNTIME_DIR=/run/user/1000 /usr/bin/arecord -f cd -d 10 /mnt/dd1/Musique/test.wav

Ok, c'était donc bien un souci d'environnement d'exécution.

Ce que je comprends pas c'est que j'avais testé mettant le user (à la place de XDG_RUNTIME_DIR) et ça e marchait. Il aurait charger toutes les variables de l'utilisateur, non ?

Je ne suis pas sûr d'avoir compris la question mais cron a tendance à
avoir une liste de variables d'environnement très limitée par rapport à
un shell interactif. Tu peux ouvrir un shell interactif avec ton compte
perso et voir toutes les variables d'environnement avec la commande "env".

Si tu lances cette même commande (env > /tmp/env.log) dans un script lancé via un cron (avec le même compte Unix), tu verras qu'il y a beaucoup moins de
variables d'environnement.

J'imagine que XDG_RUNTIME_DIR était bien définie dans un shell interactif
mais pas dans le contexte d'une exécution via cron.


bonjour

Le CRON lance un shell utilisateur en chargeant l'environnement par défaut.
Ce qui signifie que l'environnement chargé par le .profile/.bashrc ou autre à la connexion utilisateur n'est pas chargé. Donc la bonne pratique est de lancer un shell qui commence par charger l'environnement dans le shell courant, défini la log puis lance les commandes à réaliser.

amitiés,

--

Erwann


Reply to: