Как запустить приложение с графическим интерфейсом из cron?


18

Мне нужно запустить Java-апплет из Firefox. Проблема в том, что мне нужно запустить этот Firefox из cron. Если я запускаю из командной строки и она работает нормально, но когда положить команду в cron, это не удалось:

*/1 * * * * firefox http://domain.com/iqms/packetloss/iqmspacket2.html

1
Вы можете использовать Java-библиотеку Selenium, если вам нужно больше функций, чем просто ее открытие.
Övünç Metin

Вы также можете использовать Selenium с python, что проще для скриптов.
ESala

Ответы:


25

Cron работает в среде, которая ничего не знает о диспетчере отображения ( $DISPLAYне установлена). Ваше окно терминала, в котором вы тестировали, имеет этот набор для него. Если вы попробуете это в «реальном» терминале или через SSH, вы увидите, что он сломался.

Если у вас запущен только один X-сервер, то можно указать только отображение:

* * * * *    DISPLAY=:0 firefox ...

Вы могли бы, вероятно, приложить больше усилий к тому, чтобы понять, под каким дисплеем он находится, а не предполагать, что это, :0но это, вероятно, будет работать большую часть времени.

Если вам просто нужно что-то много перезагружать, посмотрите на Tab Auto Reload или похожие плагины Firefox.


Я нашел этот ответ, но все еще не запускает Firefox. После нескольких поисков я обнаружил, что мне нужно работать как действительный пользователь вместо root. * * * * * «DISPLAY =: 0.0 / usr / bin / firefox -new-window x.com/iqms/packetloss/iqmspacket2.html »
Фадаби Нави,

1
@fadabiNawi Более простой способ управления состоял бы в том, чтобы установить линию cron в crontab правильного пользователя. Войдите в систему, как вы хотите, иcrontab -e
Оли

7

Я нашел этот ответ, который я ищу в дополнение к Оли:

После нескольких поисков я обнаружил, что мне нужно работать как действительный пользователь вместо root.

* * * * * su fadabi -c "DISPLAY=:0.0 /usr/bin/firefox -new-window x.com/iqms/packetloss/iqmspacket2.html"; 

TQ


Это помогло, большое спасибо! Просто примечание: полный путь к Firefox обязателен, я этого не осознавал, и это не сработало
aexl
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.