Normalement, j’ai plusieurs problèmes avec comment cron exécute des scripts qu’ils n’ont normalement pas ma configuration de l’environnement. Y a-t-il une façon d’appeler bash(?) dans le cron de manière même ne fait donc j’ai pu tester les scripts avant de les installer ?
Réponses
Trop de publicités?Deux approches:
-
L'exportation cron env et source:
Ajouter
* * * * * env > ~/cronenv
à votre crontab, le laisser tourner une fois, le désactiver, puis sur exécuter
env - `cat ~/cronenv` /bin/sh
Et vous êtes maintenant à l'intérieur d'un
sh
session qui a cron de l'environnement -
Apportez votre environnement de cron
Vous pouvez passer directement au-dessus de l'exercice et il suffit de faire une
. ~/.profile
devant votre tâche cron, par exemple* * * * * . ~/.profile; your_command
-
Utilisation de l'écran
Ci-dessus deux solutions ne permettent pas encore de fournir un environnement connecté à une session X, avec accès à dbus etc. Par exemple, sur Ubuntu,
nmcli
(Gestionnaire de Réseau) pourront travailler dans les deux approches ci-dessus, mais ne permettent pas encore de cron.* * * * * /usr/bin/screen -dm
Ajouter la ligne ci-dessus pour cron, le laisser fonctionner une fois, le désactiver. Se connecter à votre session écran (screen-r). Si vous êtes à la vérification de l'écran session a été créée (en
ps
) sachent qu'ils sont parfois dans les capitales (par exemple,ps | grep SCREEN
)Maintenant, même
nmcli
et similaire sera un échec.