Você pode querer considerar a execução do xvfb servidor X sem cabeça.
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
xhost +local:
e verifiquei a saída de xhost
para ver se a opção estava configurada corretamente. ls /tmp/.X11-unix/
, a saída será X0
Obrigado antecipadamente!
Você pode querer considerar a execução do xvfb servidor X sem cabeça.
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