У меня есть система Ubuntu 14.04, которая просто запускает Firefox весь день. Теперь я хочу перезапустить Firefox автоматически один раз в день, таким образом, я создал следующий сценарий оболочки:
#!/bin/sh
killall firefox
sleep 5
killall -9 firefox
sleep 2
/usr/bin/firefox -URL <...>
и настроенный da cronjob для вызова сценария. Но это не работает, я добираюсь:
Error: no display specified
Когда я вставляю
export DISPLAY=:0
Я добираюсь
No protocol specified
No protocol specified
Error: cannot open display: :0
Что корректный путь состоит в том, чтобы сделать это?
Выполнить команду через xserver
из другого пользователя должно экспортировать две переменные:
XAUTHORITY
и DISPLAY
.
, В первую очередь, то, что DISPLAY
подключен к пользователю путем ввода:
w
предположение, что пользователь "имя пользователя" использует дисплей "1", и что сценарий должен быть выполнен в 23:30, обновить Ваш crontab, следующим образом:
30 23 *** export XAUTHORITY=/home/username/.Xauthority && export DISPLAY=:1 && /path/to/script 2> /tmp/error_cron.log
последняя часть строки должна сохранить любые ошибки в /tmp/error_cron.log
Сначала обязательно отредактируйте crontab с crontab -e
и не один из файлов под / и т.д. (как /etc/cron.hourly
).
Тогда необходимо объявить ДИСПЛЕЙ переменная в самом cronjob:
DISPLAY=:0 /path/to/your/script