Jak uruchomić aplikację GUI z crona?


18

Muszę uruchomić aplet Java z przeglądarki Firefox. Problem polega na tym, że muszę uruchomić Firefoksa z crona. Jeśli uruchomię z wiersza poleceń i działa dobrze, ale po umieszczeniu polecenia w cronie nie powiodło się:

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

1
Możesz użyć biblioteki java Selenium , jeśli potrzebujesz więcej funkcji niż tylko jej otwarcie.
Övünç Metin

Możesz także używać Selenium z pythonem, co jest łatwiejsze dla skryptów.
ESala

Odpowiedzi:


25

Cron działa w środowisku, które nie wie nic o menedżerze wyświetlania ( $DISPLAYnie jest ustawione). Twoje okno terminala, w którym testujesz, ma taki zestaw. Jeśli wypróbujesz to w „prawdziwym” terminalu lub przez SSH, zobaczysz, że się psuje.

Jeśli masz tylko jeden serwer X, po prostu określenie ekranu może działać:

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

Prawdopodobnie mógłbyś włożyć więcej wysiłku w :0ustalenie, pod jakim ekranem się znajduje, zamiast zakładać, że tak, ale to prawdopodobnie zadziała przez większość czasu.

Jeśli potrzebujesz tylko czegoś przeładować, spójrz na Tab Auto Reload lub podobne wtyczki Firefox.


Znalazłem tę odpowiedź, ale nadal nie uruchamia Firefoxa. Po kilku poszukiwaniach okazało się, że muszę działać jako prawidłowy użytkownik zamiast roota. * * * * * „DISPLAY =: 0,0 / usr / bin / firefox -new -window x.com/iqms/packetloss/iqmspacket2.html
fadabi Nawi

1
@fadabiNawi Łatwiejszym sposobem zarządzania byłoby zainstalowanie linii cron w crontabie właściwego użytkownika. Zaloguj się, jak chcesz, icrontab -e
Oli

7

Znalazłem tę odpowiedź, szukam dodatku do oli:

Po kilku poszukiwaniach okazało się, że muszę działać jako prawidłowy użytkownik zamiast roota.

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

tq


To pomogło, wielkie dzięki! Tylko uwaga: pełna ścieżka do Firefoksa jest obowiązkowa, nie zdawałem sobie z tego sprawy i nie działała
aexl
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.