背景不会改变使用来自cron的gsettings

我正在尝试使用Indrajith Indraprastham建议的脚本将壁纸更改为随机图像: 如何在Unity中从命令行更改桌面背景?

当我从终端窗口运行脚本时,bg变化很好,但是当它从cron运行时,我邮寄了这个错误:

(进程:21901):dconf-WARNING **:无法提交对dconf的更改:错误生成命令行’dbus-launch –autolaunch = 00216c114dcf433c9bb9009985d607d6 –binary-syntax –close-stderr’:子进程退出,代码为1

我将不胜感激任何建议。

从cron编辑gsettings; 缺少环境变量

如果从您自己的环境(例如,从终端窗口或从启动应用程序)运行脚本,则将设置许多环境变量。 然而, cron使用一组有限的环境变量来运行脚本。

要从cron成功编辑gsettings ,您需要设置DBUS_SESSION_BUS_ADDRESS环境变量。 您可以通过在脚本中添加两行来完成此操作,如此处 (及下文)所述。

您的脚本,包括设置所需的变量

此处编辑的脚本包含DBUS_SESSION_BUS_ADDRESS环境变量,然后变为:

 #!/bin/bash PID=$(pgrep gnome-session) export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-) DIR="/home/indra/Pictures/wallpapers" PIC=$(ls $DIR/* | shuf -n1) gsettings set org.gnome.desktop.background picture-uri "file://$PIC" 

相关: 每5分钟运行一次.sh