У меня есть удаленный сервер под управлением Ubuntu 10.04 Desktop. Из него я хочу запустить сценарий, который просматривает список веб-сайтов и снимает их скриншоты.
Скрипт рабочий и тщательно протестирован.
Когда я подключаюсь к серверу по SSH с ssh -X user@ip-adress
Я могу запустить свой сценарий, позвонив ./myscript.py
и все будет нормально работать.
Затем я изменил свой файл crontab и добавил ...
59 17 * * * env DISPLAY=:0 /path/to/myscript.py
... как рекомендовано Ubuntu WIKI.
Я вижу в /var/log/syslog
что моя работа cron запущена, но не делает снимков экрана.
При беге 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 на сервере?
кроме того, этого не будет: 0, когда вы выполняете X через ssh, это будет что-то совершенно другое.
это было бы намного проще сделать локально или, по крайней мере, запустить локально из cron на машине, на которой работает X.
когда вы входите в систему и можете успешно запустить скрипт на сервере, попробуйте echo $DISPLAY
чтобы увидеть, как он установлен. мой sshd_config
имеет X11DisplayOffset 10
, что означает, что это будет hostname:10.0