无法运行 cron 任务的 .sh 脚本。更改背景图像

无法运行 cron 任务的 .sh 脚本。更改背景图像

我尝试了多种方法来解决此问题,但我只想在 cron 中运行此脚本时更改桌面壁纸。以下是我目前所做的。

PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
sudo gsettings set org.gnome.desktop.background picture-uri file:///home/mark/Pictures/Background_Pictures/CAP.jpg

当我在 cron 中运行此命令时出现以下错误。

(process:17154): dconf-WARNING **: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY

我知道问题的一部分是我需要设置变量DBUS_SESSION_BUS_ADDRESS,但我已经设置了,而且它似乎有一个有效值。

我不知道该如何实现这一点。有人对此有有效的解决方案吗?

答案1

找到了解决方案。我使用了以下脚本。

PID=$(pgrep gnome-session) 
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-) 
gsettings set org.gnome.desktop.background picture-uri "file:///home/mark/Pictures/Wallpapers/CAP.jpg"

但是,问题出在我的 cron 文件中。我使用了以下行

***** root sh /home/mark/scripts/desktop.sh

而本该如此

***** mark sh /home/mark/scripts/desktop.sh

当我使用自己的权限在 cron 中运行该脚本时,我就能够成功在 cron 中运行该脚本。

相关内容