J'essaie de changer mon fond d'écran en une image aléatoire en utilisant le script suggéré par Indrajith Indraprastham ici: Comment changer l'arrière-plan du bureau à partir de la ligne de commande dans Unity?
Lorsque j'exécute le script à partir d'une fenêtre de terminal, le bg change très bien, mais lorsqu'il est exécuté à partir de cron, je reçois cette erreur:
(processus: 21901): dconf-WARNING **: échec de validation des modifications dans dconf: erreur de génération de la ligne de commande 'dbus-launch --autolaunch = 00216c114dcf433c9bb9009985d607d6 --binary-syntax --close-stderr': processus enfant terminé avec le code 1
J'apprécierais toutes suggestions.
Réponses:
Modification des paramètres depuis 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 à partir d'applications de démarrage), un certain nombre de variables d'environnement seront définies.
cron
exécute cependant votre script avec un ensemble limité de variables d'environnement.Pour éditer
gsettings
avec succès à partir decron
, vous devez définir laDBUS_SESSION_BUS_ADDRESS
variable d'environnement. 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 d'ici , édité pour inclure la
DBUS_SESSION_BUS_ADDRESS
variable d'environnement, devient alors:Connexe: Exécution de .sh toutes les 5 minutes
la source
PID=$(pgrep -f 'gnome-session' | head -n1)
!DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
par$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ)
puisque grep obtient également le nom de la variable. sourcepgrep gnome-session
peut renvoyer plus d'un pid si plusieurs utilisateurs sont connectés au système (chaque session gnome en cours d'exécution). PeutEUID=$(id --real --user)
- être etPID=$(pgrep --euid $EUID gnome-session)
serait un moyen d'obtenir uniquement le PID associé à la session gnome de l'utilisateur actuel.