我的剧本 -
#!/bin/sh
# export DBUS_SESSION_BUS_ADDRESS environment variable
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
DIR="/home/umang/Downloads/Wallpapers"
PIC=$(ls $DIR/*.jpg | shuf -n1)
/usr/bin/gsettings set org.gnome.desktop.background picture-uri file://$PIC
cronjob文件 -
* * * * * /path/to/script/Wallpaper_Changer.sh
* * * * * date >> /path/to/logfile/CronTest.log
壁纸通过终端正确更改,日期通过cron记录。
我正在运行ubuntu 14.04,GNOME Shell 3.12.1。 帮我改变gnome上的壁纸以及统一。
答案 0 :(得分:1)
我尝试了所有的解决方案但没有帮助。问题是,我仍然无法访问环境变量(DBUS_SESSION_BUS_ADDRESS)。所以可以先检查一下是否可用。
对我来说有用的只是在当前的shell环境中运行脚本。这可以通过在cronjob文件中运行带.
的脚本来完成 -
* * * * * . /path/to/script/Wallpaper_Changer.sh
更多信息:Global environment variables in a shell script Understanding Unix shells and environment variables
答案 1 :(得分:0)
在SO上有很多与此类似的问题,一个简单的谷歌搜索产生了不少。有一个:
Run cronjob as user to change desktop background in Ubuntu
可能还有更多。希望其中一个或其他人在线帮助你。