Execute a aplicação GUI via cronjob no Ubuntu?

1

Eu tenho um servidor remoto rodando "Ubuntu 10.04 Desktop". Dele eu quero executar um script que percorre uma lista de sites e captura capturas de tela deles.

O script está funcionando e foi totalmente testado.

Quando eu for SSH para o servidor com ssh -X user@ip-adress , posso executar meu script chamando ./myscript.py e tudo funcionará bem.

Eu então modifiquei meu arquivo crontab e adicionei ...
59 17 * * * env DISPLAY=:0 /path/to/myscript.py
... como recomendado pelo Ubuntu WIKI.

Eu posso ver no /var/log/syslog que meu trabalho do cron foi iniciado, mas ele não captura nenhuma captura de tela.

Ao executar env DISPLAY=:0 /path/to/myscript.py do shell, recebo No protocol specified e myscript.py: cannot connect to X server :0

Se eu ssh para o servidor sem a opção -X , só obtenho a segunda linha do erro: myscript.py: cannot connect to X server :0

O que posso experimentar agora?

Mais detalhes

  • Eu executei xhost +local: e verifiquei a saída de xhost para ver se a opção estava configurada corretamente.
  • Se eu executar ls /tmp/.X11-unix/ , a saída será X0
  • O servidor tem apenas uma tela.

Obrigado antecipadamente!

    
por Christoffer 15.05.2010 / 18:40

2 respostas

2

Você pode querer considerar a execução do xvfb servidor X sem cabeça.

    
por 15.05.2010 / 18:55
0

você está executando o script via cron no servidor?

também, não será: 0 quando você estiver fazendo X sobre o ssh, será algo completamente diferente.

isso seria muito mais fácil de fazer localmente, ou pelo menos iniciar localmente a partir do cron na máquina em que você está executando o X.

quando você efetuar login e puder iniciar o script no servidor com êxito, tente echo $DISPLAY para ver o que está definido como. meu sshd_config tem X11DisplayOffset 10 , o que significa que seria hostname:10.0

    
por 15.05.2010 / 18:55