dconf-警告**:无法将更改提交到 dconf:给定的地址为空

dconf-警告**:无法将更改提交到 dconf:给定的地址为空

change_wallpaper因此我根据以下答案得到了这个脚本:在特定时间自动更改 Ubuntu 壁纸并把它贯穿了cron

# For changing wallpaper at a certain time
*/1 6,7,8,9,10,11,12,13,14,15,16,17 * * * /home/zero/.bin/change_wallpaper '/home/zero/Pictures/Wallpapers/dawn.jpg'
*/1 18,19,20,21,22,23,0,1,2,3,4,5 * * * /home/zero/.bin/change_wallpaper '/home/zero/Pictures/Wallpapers/dusk.jpg'

总之,每次我启动我的 Ubuntu 时,它必须将壁纸更改为dawn.jpg早上或dusk.jpg晚上。

更改壁纸

#!/bin/bash -e
user=$(whoami)

fl=$(find /proc -maxdepth 2 -user "$user" -name environ -print -quit)
for i in {1..5}
do
  fl=$(find /proc -maxdepth 2 -user "$user" -name environ -newer "$fl" -print -quit)
done

export DBUS_SESSION_BUS_ADDRESS
DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS "$fl" | cut -d= -f2-)

IMG=$1
gsettings set org.gnome.desktop.background picture-uri "'file://${IMG}'"

有一次,我注意到cron脚本不再起作用,所以我尝试手动运行它。然后我注意到这个错误。

zero@zerosystem:~$ /home/zero/.bin/change_wallpaper /home/zero/Pictures/Wallpapers/dawn.jpg 

(process:5420): dconf-WARNING **: failed to commit changes to dconf: The given address is empty

这是为什么?我还注意到每次运行它时都会有不同的进程号,即(process:5420)

答案1

在执行 gsettings 时,如果出现以下错误信息

dconf-警告**:...:无法提交对 dconf 的更改:给定的地址为空

这可能意味着您的环境变量 DBUS_SESSION_BUS_ADDRESS 确实是空的,即它在某个时候已被取消设置。

我通过 export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus 解决了这个问题

相关内容