通过脚本从 Cron 编辑 Gsettings 不起作用

通过脚本从 Cron 编辑 Gsettings 不起作用

因此,我尝试在晚上将主题从浅色改为深色,早上则反之。但是,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

我在运行 cron 命令时也遇到了类似的问题dconf。我的情况是,我dbus-launch在命令开头添加了一个变量,并DISPLAY=:0在 crontab 文件中添加了一个变量。

我的 crontab 如下所示: DISPLAY=:0 0 6 * * * dbus-launch /path/to/my/dconf-script

相关内容