Mises à jour START
export DISPLAY=:0 && <my GUI dependent command here>
J'attends qu'il poste la réponse ici./opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &
sans le &
aussi. Échoue encore. Succeeds directement en ligne de commande./var/log/cron
sur ma machine. Question subsidiaire: Comment puis-je l'obtenir?Mises à jour END
J'ai un document Google que je dois mettre à jour à intervalles réguliers plusieurs fois par jour. Le contenu qui formerait une mise à jour particulière ne peut pas être prédit ou déterminé par programme. Donc, la meilleure solution que j'ai est de laisser la page Google Doc particulière s'ouvrir automatiquement à intervalles fixes, puis d'y ajouter manuellement les données.
Le problème est que ce qui fonctionne directement sur la ligne de commande ne fonctionne pas dans crontab. Voici ce que j'ai essayé (en utilisant un intervalle de 2 minutes juste pour le test) -
*/2 * * * * date >> /tmp/crontest
*/2 * * * * /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &
cat /tmp/crontest
, je vois les horodatages ajoutés à chaque minute./opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL
sur le shell, cela fonctionne comme prévuPARTICULAR_GOOGLE_DOC_URL
ne s'ouvre pas dans mon chrome toutes les 2e minute comme il se doit. (encore une fois: j'utilise un intervalle de 2 minutes juste pour les tests)Qu'est-ce que je fais mal? Comment dois-je résoudre ce problème? Un autre moyen de réaliser ce que j'ai besoin de faire?
Merci d'avance.
Editez la crontab avec export DISPLAY
wrapper:
2 * * * * export DISPLAY=:0 && firefox %u
Cela ouvre un onglet Firefox vide, vous pouvez utiliser votre URL favorite.
cron
est destiné aux travaux en ligne de commande et exécute les commandes avec un ensemble très limité de variables d'environnement - seulement HOME
, LOGNAME
, PATH
, et Shell
.
Au moins, chrome
nécessitera que DISPLAY
soit défini. Il peut également être malheureux sans d’autres variables (par exemple, les variables liées à DBUS
.). Exécutez env
dans un terminal pour voir votre environnement actuel.
L'environnement que vous obtenez pour un cronjob est très limité. Par exemple, vous ne disposez pas de la variable DISPLAY requise pour ouvrir le chrome.
Enveloppez votre commande dans un script
#!/bin/sh
export DISPLAY=:0
/opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL
Pas vraiment sûr d'avoir besoin de plus de variables pour que cela fonctionne. J'ai fait un script similaire qui a démarré konsole
(terminal dans KDE) et qui a fonctionné dans cron.