Próbuję zmienić tapetę na losowy obraz za pomocą sugerowanego skryptu Indrajith Indraprastham tutaj: Jak zmienić tło pulpitu z wiersza poleceń w Unity?
Kiedy uruchamiam skrypt z okna terminala, bg zmienia się dobrze, ale kiedy jest uruchamiany z crona, wysyłam ten błąd:
(proces: 21901): dconf-WARNING **: nie udało się zatwierdzić zmian w dconf: Błąd spawnowania wiersza poleceń „dbus-launch --autolaunch = 00216c114dcf433c9bb9009985d607d6 - składnia binarna --close-stderr”: Proces potomny został zakończony z kodem 1
Byłbym wdzięczny za wszelkie sugestie.
Odpowiedzi:
Edycja ustawień z crona; brak zmiennej środowiskowej
Jeśli uruchomisz skrypt ze swojego środowiska (np. Z okna terminala lub z aplikacji startowych), zostanie ustawiona liczba zmiennych środowiskowych.
cron
jednak uruchamia skrypt z ograniczonym zestawem zmiennych środowiskowych.Aby edytować
gsettings
z powodzeniemcron
, musisz ustawićDBUS_SESSION_BUS_ADDRESS
zmienną środowiskową. Możesz to zrobić, dodając dwa wiersze do skryptu, jak opisano tutaj (i poniżej).Twój skrypt, w tym ustawienie potrzebnej zmiennej
Skrypt z tego miejsca , edytowany w celu włączenia
DBUS_SESSION_BUS_ADDRESS
zmiennej środowiskowej, staje się:Powiązane: Uruchamianie .sh co 5 minut
źródło
PID=$(pgrep -f 'gnome-session' | head -n1)
!DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
ze$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ)
Ponieważ grep dostaje nazwę zmiennej zbyt. źródłopgrep gnome-session
może zwrócić więcej niż jeden pid, jeśli do systemu zalogowanych jest wielu użytkowników (każdy z uruchomioną sesją gnome). Być możeEUID=$(id --real --user)
iPID=$(pgrep --euid $EUID gnome-session)
byłby to sposób na uzyskanie tylko PID powiązanego z sesją gnome bieżącego użytkownika.