Estoy tratando de cambiar mi fondo de pantalla a una imagen aleatoria usando el script sugerido por Indrajith Indraprastham aquí: ¿Cómo cambiar el fondo del escritorio desde la línea de comandos en Unity?
Cuando ejecuto el script desde una ventana de terminal, el bg cambia muy bien, pero cuando se ejecuta desde cron, recibo este error:
(proceso: 21901): dconf-WARNING **: no se pudieron confirmar los cambios en dconf: Error al generar la línea de comando 'dbus-launch --autolaunch = 00216c114dcf433c9bb9009985d607d6 --binary-syntax --close-stderr': el proceso secundario salió con el código 1
Apreciaria cualquier sugerencia.

Respuestas:
Edición de gsettings desde cron; variable de entorno faltante
Si ejecuta el script desde su propio entorno (por ejemplo, desde una ventana de terminal o desde aplicaciones de inicio), se establecerán varias variables de entorno.
cronsin embargo, ejecuta su script con un conjunto limitado de variables de entorno.Para editar con
gsettingséxito desdecron, debe establecer laDBUS_SESSION_BUS_ADDRESSvariable de entorno. Puede hacerlo agregando dos líneas a su secuencia de comandos, como se describe aquí (y a continuación).Su secuencia de comandos, incluida la configuración de la variable necesaria
El script de aquí , editado para incluir la
DBUS_SESSION_BUS_ADDRESSvariable de entorno, se convierte en:Relacionado: Ejecutar .sh cada 5 minutos
fuente
PID=$(pgrep -f 'gnome-session' | head -n1)¡ Pruébalo !DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)con$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ)Since grep también obtiene el nombre de la variable. fuentepgrep gnome-sessionpuede devolver más de un pid si varios usuarios están conectados al sistema (cada uno ejecuta gnome-session). QuizásEUID=$(id --real --user)yPID=$(pgrep --euid $EUID gnome-session)sería una forma de obtener solo el PID asociado con la sesión de gnomo del usuario actual.