У меня есть .sh сценарий, который загружает фотографию с сервера японского спутника и устанавливает его как фоновое изображение. Я выразился в список запуска, но как я выполняю его каждый, как, 5 минут, автоматически?
, Если Вы хотите простой способ и избегаете необходимости узнавать который переменная среды установить:
Добавляет следующее для Запущения Приложений:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"
Тире> Приложения Запуска> Добавляют. Добавьте команду:
/bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"
, Если Вы запускаете скрипт от своей собственной среды (например, из окна терминала или из Приложений Запуска), много переменных среды будут установлены. cron
однако запускает Ваш скрипт с ограниченным набором переменных среды.
, Так как Ваш сценарий несомненно использует эти gsettings
команда:
gsettings get org.gnome.desktop.background picture-uri <wallpaper>
для установки обоев почти наверняка команда повредится, когда выполнено от cron
.
оборотная сторона "ленивого решения" является чисто теоретической. Команда, которая спит практически непрерывно, означает ничто к Вашей системе.
Чтение это сообщение , и на основе событий в прошлом я вполне уверен DBUS_SESSION_BUS_ADDRESS
, переменная среды должна быть установлена.
Для этого добавляют следующий раздел в начале Вашего сценария (ниже хижины):
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
Затем необходимо смочь успешно выполнить его от cron
.
Вы могли однако очень хорошо сохранить давку и выбрать ленивую опцию.
Вставьте его Ваш crontab
.
Откройте Ваш cron
таблица:
crontab -e
Теперь добавьте:
*/5 * * * * /path/to/script.sh
Не забывайте делать исполняемый файл сценария заранее.
Поскольку Ваш сценарий зависит от X, вероятно, будет хорошая идея добавить DISPLAY
к среде сценария:
*/5 * * * * DISPLAY=:0 /path/to/script.sh
Замена :0
с Вашим фактическим DISPLAY
(может быть найден echo $DISPLAY
от интерактивной сессии).
В случае необходимости можно добавить XAUTHORITY
переменная среды также:
*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh
Снова можно найти значение echo $XAUTHORITY
.