Фон, не изменяющий использование gsettings от крона

Я пытаюсь изменить свои обои на случайное изображение с помощью предложенного сценария Indrajith Indraprastham здесь: Как изменить настольный фон из командной строки в Единице?

Когда я запускаю скрипт из окна терминала, изменения bg очень хорошо, но когда он выполняется от крона, мне отправляют эту ошибку по почте:

(process:21901): DCONF-ПРЕДУПРЕЖДЕНИЕ **: не удалось фиксировать изменения в dconf: Ошибка, порождающая командную строку 'dbus-запуск - autolaunch=00216c114dcf433c9bb9009985d607d6 - двоичный синтаксис - близко-stderr': Дочерний процесс, из которого выходят с кодом 1

Я ценил бы любые предложения.

10
задан 13 April 2017 в 05:25

1 ответ

Редактирование 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"
<час>

Связанный: Выполнение .sh каждые 5 минут

14
ответ дан 23 November 2019 в 04:28

Другие вопросы по тегам:

Похожие вопросы: