На этот вопрос уже есть ответ здесь:
Итак, я пытаюсь изменить свою тему с светлой на темную версию вечером и наоборот утром. Однако 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 для запуска скрипт, но я бы предпочел не использовать корневой cron.
У меня была подобная проблема, работающая dconf
команда от крона. В моем случае я добавил dbus-launch
к началу своей команды, а также добавления переменной DISPLAY=:0
в crontab файл.
мой crontab похож на это:
DISPLAY=:0
0 6 * * * dbus-launch /path/to/my/dconf-script