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

Modified on: Sun, 24 Jun 2018 02:50:23 +0800

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

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

  

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

我很感激任何建议。

作者:Community,Shaun

最佳答案

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

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

要从gsettings成功编辑cron,您需要设置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


相关问答

添加新评论