Як запустити програму GUI з cron?


18

Мені потрібно запустити аплет Java від Firefox. Проблема в тому, що мені потрібно запустити цей Firefox з крона. Якщо я запускаю з командного рядка і його працює добре, але коли ставити команду в 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але це, ймовірно, спрацює більшу частину часу.

Якщо вам просто потрібно перезавантажити щось багато, подивіться на вкладку Автозавантаження або подібні додатки Firefox.


Я знайшов цю відповідь, але все ще не запускає firefox. Після кількох пошуків я виявив, що мені потрібно запустити як дійсний користувач замість root. * * * * * "DISPLAY =: 0,0 / usr / bin / firefox -new-window x.com/iqms/packetloss/iqmspacket2.html "
fadabi Nawi

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.