cron에서 GUI 응용 프로그램을 시작하는 방법은 무엇입니까?


18

Firefox에서 Java 애플릿을 실행해야합니다. 문제는 cron 에서이 Firefox를 실행해야한다는 것입니다. 명령 줄에서 실행하면 제대로 작동하지만 명령을 cron에 넣으면 실패합니다.

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

1
Selenium 의 Java 라이브러리를 여는 것보다 더 많은 기능이 필요한 경우 사용할 수 있습니다 .
Övünç Metin

Python과 함께 Selenium 을 사용할 수도 있습니다 . 스크립트가 더 쉽습니다.
ESala

답변:


25

Cron은 디스플레이 관리자에 대해 아무것도 모르는 환경에서 실행됩니다 ( $DISPLAY설정되지 않음). 테스트 한 터미널 창에 설정되어 있습니다. "실제"터미널 또는 SSH를 통해 시도한 경우 연결이 끊어 질 수 있습니다.

하나의 X 서버 만 실행중인 경우 디스플레이를 지정하면 작동 할 수 있습니다.

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

아마도 디스플레이가 있다고 가정하는 대신 디스플레이가 어떤 디스플레이에 있는지 알아내는 데 더 많은 노력을 기울일 수 :0있지만 아마도 대부분의 시간 동안 작동 할 것입니다.

무언가를 많이 다시로드 해야하는 경우 Tab Auto Reload 또는 유사한 Firefox 플러그인을 확인하십시오.


이 답변을 찾았지만 여전히 파이어 폭스를 시작하지 않습니다. 몇 번 검색 한 후 루트 대신 유효한 사용자로 실행해야한다는 것을 알았습니다. * * * * * "DISPLAY = 0.0 / USR / 빈 / 파이어 신규 윈도우 x.com/iqms/packetloss/iqmspacket2.html "
fadabi Nawi

1
@fadabiNawi cron 라인을 올바른 사용자의 crontab에 설치하는 쉬운 관리 방법. 원하는 사람으로 로그인하고crontab -e
Oli

7

나는 oli에 대한 추가를 찾고있는이 대답을 찾았습니다.

몇 번 검색 한 후 루트 대신 유효한 사용자로 실행해야한다는 것을 알았습니다.

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

tq


이것은 많은 도움이되었습니다! 참고 사항 : Firefox의 전체 경로는 필수이며, 잘
몰랐고
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.