Редактирование Gsettings из Cron через скрипт не работает
Итак, вечером я пытаюсь сменить тему со светлой на темную, а утром - наоборот. Тем не менее, Gsettings не работает с Cron, и решения, размещенные здесь и здесь, похоже, не работают, как и те, которые размещены в комментариях под ними.
Вот скрипт, который выполняет Cron:
#!/bin/bash
#Export DBUS_SESSION_BUS_ADDRESS environment variable
PID=$(pgrep -o gnome-shell)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS/proc/$PID/environ|cut -d= -f2-)
#Change theme
gsettings set org.gnome.desktop.interface gtk-theme 'Arc-Dark'
gsettings set org.gnome.shell.extensions.user-theme name 'Arc-Dark'
И это ошибка, которую я получаю в dead.letter (способ регистрации ошибок Crons):
grep: /proc/1098/environ: Permission denied
(process:28536): dconf-WARNING **: failed to commit changes to dconf: The given address is empty
grep: /proc/1098/environ: Permission denied
(process:28811): dconf-WARNING **: failed to commit changes to dconf: The given address is empty
Я знаю, что могу использовать sudo -u для запуска скрипта, но я бы предпочел не использовать root cron.
1 ответ
У меня была похожая проблема dconf
команда от хрон. В моем случае я добавил dbus-launch
в начале моей команды, а также добавление переменной DISPLAY=:0
в файл crontab.
мой crontab выглядит так:
DISPLAY=:0
0 6 * * * dbus-launch /path/to/my/dconf-script