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