Cron работает, но запланированная работа по открытию веб-страницы в Chrome не

Обновления НАЧАЛО

  1. Мой друг только что ответил на это. Мне нужно сделать это export DISPLAY=:0 && <my GUI dependent command here> В ожидании его размещения здесь ответа.
  2. Я пробовал /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL & без & тоже. Все еще не удается. Успешно работает непосредственно в командной строке.
  3. На моей машине нет файла /var/log/cron. Вспомогательный вопрос: как я могу его получить?

Обновления КОНЕЦ

У меня есть Документ Google, который мне нужно регулярно обновлять несколько раз в день. Контент, который сформирует конкретное обновление, не может быть спрогнозирован или определен программно. Итак, лучшее решение, которое у меня есть, - это автоматически открывать определенную страницу Google Doc через определенные промежутки времени, а затем вручную добавлять в нее данные.

Теперь проблема в том, что то, что работает непосредственно в командной строке, не работает при использовании в crontab. Ниже я попробовал (используя 2-минутный интервал только для тестирования) -

*/2 * * * * date >> /tmp/crontest
*/2 * * * * /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &
  1. Если я cat /tmp/crontest, я вижу добавленные там метки времени для каждой второй минуты
  2. Если я просто попробуйте /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL на оболочке, она работает как положено
  3. Но PARTICULAR_GOOGLE_DOC_URL не открывается в моем chrome каждые 2 минуты, как должно. (снова: я использую 2-минутный интервал только для тестирования)

Что я делаю не так? Как мне это исправить? Любой альтернативный способ достижения того, что мне нужно сделать?

Заранее спасибо.

6
задан 10 January 2013 в 15:03

3 ответа

Отредактируйте crontab с помощью оболочки export DISPLAY:

2 * * * * export DISPLAY=:0 && firefox %u

Откроется пустая вкладка Firefox, вы можете использовать свой любимый URL.

0
ответ дан 10 January 2013 в 15:03

cron предназначен для заданий командной строки и выполняет команды с очень ограниченным набором переменных среды - просто HOME, LOGNAME, PATH и SHELL. [ 1110]

По крайней мере, chrome потребует установки DISPLAY. Это может также быть несчастным без других переменных (например, связанных DBUS). Запустите env в терминале, чтобы увидеть текущую среду.

0
ответ дан 10 January 2013 в 15:03

Окружающая среда, которую вы получаете за cronjob, очень ограничена. Например, вы не получаете переменную DISPLAY, которая требуется для открытия Chrome.

Оберните вашу команду в скрипт

#!/bin/sh
export DISPLAY=:0
/opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL

Не совсем уверен, если вам нужно больше переменных, чтобы заставить его работать. Я сделал похожий скрипт, который запустил konsole (терминал в KDE), который работал в cron.

0
ответ дан 10 January 2013 в 15:03

Другие вопросы по тегам:

Похожие вопросы: