无法在ubuntu上使用crontab更改壁纸

时间:2014-06-13 12:21:17

标签: linux ubuntu cron

我的剧本 -

#!/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上的壁纸以及统一。

2 个答案:

答案 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

这一个: https://askubuntu.com/questions/25489/wallpaper-change-crontab-jobs-not-working-after-upgrade-from-8-04-to-10-04

这一个: https://askubuntu.com/questions/403918/setting-cron-to-run-a-shell-script-random-wallpaper-from-a-webpage

可能还有更多。希望其中一个或其他人在线帮助你。