Обновления НАЧАЛО
export DISPLAY=:0 && <my GUI dependent command here>
В ожидании его размещения здесь ответа. /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &
без &
тоже. Все еще не удается. Успешно работает непосредственно в командной строке. /var/log/cron
. Вспомогательный вопрос: как я могу его получить? Обновления КОНЕЦ
У меня есть Документ Google, который мне нужно регулярно обновлять несколько раз в день. Контент, который сформирует конкретное обновление, не может быть спрогнозирован или определен программно. Итак, лучшее решение, которое у меня есть, - это автоматически открывать определенную страницу Google Doc через определенные промежутки времени, а затем вручную добавлять в нее данные.
Теперь проблема в том, что то, что работает непосредственно в командной строке, не работает при использовании в crontab. Ниже я попробовал (используя 2-минутный интервал только для тестирования) -
*/2 * * * * date >> /tmp/crontest
*/2 * * * * /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &
cat /tmp/crontest
, я вижу добавленные там метки времени для каждой второй минуты /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL
на оболочке, она работает как положено PARTICULAR_GOOGLE_DOC_URL
не открывается в моем chrome каждые 2 минуты, как должно. (снова: я использую 2-минутный интервал только для тестирования) Что я делаю не так? Как мне это исправить? Любой альтернативный способ достижения того, что мне нужно сделать?
Заранее спасибо.
Отредактируйте crontab с помощью оболочки export DISPLAY
:
2 * * * * export DISPLAY=:0 && firefox %u
Откроется пустая вкладка Firefox, вы можете использовать свой любимый URL.
cron
предназначен для заданий командной строки и выполняет команды с очень ограниченным набором переменных среды - просто HOME
, LOGNAME
, PATH
и SHELL
. [ 1110]
По крайней мере, chrome
потребует установки DISPLAY
. Это может также быть несчастным без других переменных (например, связанных DBUS
). Запустите env
в терминале, чтобы увидеть текущую среду.
Окружающая среда, которую вы получаете за cronjob, очень ограничена. Например, вы не получаете переменную DISPLAY, которая требуется для открытия Chrome.
Оберните вашу команду в скрипт
#!/bin/sh
export DISPLAY=:0
/opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL
Не совсем уверен, если вам нужно больше переменных, чтобы заставить его работать. Я сделал похожий скрипт, который запустил konsole
(терминал в KDE), который работал в cron.