web-dev-qa-db-fra.com

Fond ne changeant pas en utilisant gsettings de cron

J'essaie de changer mon fond d'écran pour une image aléatoire en utilisant le script suggéré par Indrajith Indraprastham ici: Comment changer l'arrière-plan du bureau de la ligne de commande dans Unity?

Lorsque j'exécute le script à partir d'une fenêtre de terminal, le bg change parfaitement, mais lorsqu'il est exécuté à partir de cron, le message d'erreur suivant m'a été envoyé:

(processus: 21901): dconf-WARNING **: échec de la validation des modifications apportées à la commande dconf: Erreur lors de la génération de la ligne de commande 'dbus-launch --autolaunch = 00216c114dcf433c9bb9009985d607d6 - syntaxe binaire --close-stderr': processus enfant arrêté avec le code 1

J'apprécierais toutes suggestions.

9
Shaun

Modification de gsettings à partir de cron; variable d'environnement manquante

Si vous exécutez le script à partir de votre propre environnement (par exemple, à partir d’une fenêtre de terminal ou d’applications de démarrage), un certain nombre de variables d’environnement seront définies. cron exécute toutefois votre script avec un ensemble limité de variables d'environnement.

Pour éditer gsettings avec succès de cron, vous devez définir la variable d’environnement DBUS_SESSION_BUS_ADDRESS. Vous pouvez le faire en ajoutant deux lignes à votre script, comme décrit ici (et ci-dessous).

Votre script, y compris la définition de la variable requise

Le script à partir d'ici , édité pour inclure la variable d'environnement DBUS_SESSION_BUS_ADDRESS, devient alors:

#!/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"

Connexes: en cours d'exécution .sh toutes les 5 minutes

13
Jacob Vlijm