Como iniciar um aplicativo GUI a partir do cron?


18

Eu preciso executar um applet Java a partir de um Firefox. O problema é que eu preciso executar este Firefox a partir de um cron. Se eu executar a partir da linha de comando e seu trabalho estiver bom, mas quando colocar o comando no cron, ele falhará:

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

11
Você pode usar a biblioteca java do Selenium se precisar de mais funções do que apenas abri-la.
Övünç Metin

Você também pode usar o Selenium com python, o que é mais fácil para scripts.
ESala #

Respostas:


25

Cron é executado em um ambiente que não sabe nada sobre o gerenciador de exibição ( $DISPLAYnão está definido). Sua janela do terminal em que você está testando possui esse conjunto para isso. Se você o experimentasse em um terminal "real" ou através de SSH, você o veria quebrar.

Se você tiver apenas um servidor X em execução, basta especificar a exibição:

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

Você provavelmente poderia se esforçar mais para descobrir qual é a tela em que está, em vez de supor que está, :0mas que provavelmente funcionará na maioria das vezes.

Se você só precisa recarregar muito, consulte Tab Auto Reload ou plugins semelhantes do Firefox.


Encontrei esta resposta, mas ainda não inicia o firefox. Depois de algumas pesquisas, descobri que preciso executar como um usuário válido em vez de raiz. * * * * * "DISPLAY =: 0.0 / usr / bin / firefox -new -window x.com/iqms/packetloss/iqmspacket2.html "
fadabi Nawi

11
@fadabiNawi Uma maneira mais fácil de gerenciar isso seria instalar a linha cron no crontab do usuário correto. Entre como quem você quiser ecrontab -e
Oli

7

Encontrei esta resposta que estou procurando além do oli:

Depois de algumas pesquisas, descobri que preciso executar como um usuário válido em vez de raiz.

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

tq


Isso ajudou, muito obrigado! Apenas uma nota: caminho completo para o Firefox é obrigatório, eu não percebi isso e não funcionou
aexl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.