我有一个运行“Ubuntu 10.04桌面”的远程服务器。 从它我想运行一个脚本,通过一个网站列表,并捕获他们的截图。
脚本正在工作并经过彻底testing。
当我用ssh -X user@ip-adress ./myscript.py SSH服务器时,我可以通过调用./myscript.py来运行我的脚本,一切都可以正常工作。
我然后修改我的crontab文件,并添加…
59 17 * * * env DISPLAY=:0 /path/to/myscript.py
…正如Ubuntu WIKI推荐的那样。
我可以在/var/log/syslog看到我的cron作业已经启动,但是没有捕获任何截图。
从shell中运行env DISPLAY=:0 /path/to/myscript.py
No protocol specified
myscript.py: cannot connect to X server :0
如果我SSH服务器没有-X选项我只得到第二行的错误: myscript.py: cannot connect to X server :0
我现在可以尝试什么?
更多细节
xhost +local:并且检查了xhost的输出以查看该选项是否设置正确。 ls /tmp/.X11-unix/输出是X0 先谢谢你!
您可能要考虑运行xvfb无头X服务器。
你在服务器上通过cron运行脚本吗?
而且,当你通过ssh进行X操作时,它不会:0,这将是完全不同的东西。
这在本地执行起来要容易得多,或者至less从运行X的机器上的cron本地启动。
当您login时,可以成功启动服务器上的脚本,请尝试echo $DISPLAY以查看设置为的内容。 我的sshd_config有X11DisplayOffset 10 ,这意味着它将是hostname:10.0