在Ubuntu中通过cronjob运行GUI应用程序?

我有一个运行“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_configX11DisplayOffset 10 ,这意味着它将是hostname:10.0