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.
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).
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"