Muszę zautomatyzować konfigurację pulpitu przez Puppet, terminal wirtualny lub ssh.
Niestety wywołanie gsettings
przez ssh lub terminal wirtualny daje:
gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hsize "4"
(process:29520): dconf-WARNING **: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY
Kiedy ustawię za $DISPLAY
pomocą export DISPLAY=:0.0
, daje kolejny błąd:
(process:29862): dconf-WARNING **: failed to commit changes to dconf: Could not connect: Connection refused
Co mogę zrobić?
remote-access
dconf
gsettings
puppet
remote-login
Adam Ryczkowski
źródło
źródło
DBUS_SESSION_BUS_ADDRESS
, ale takżeXDG_RUNTIME_DIR
.Odpowiedzi:
Kluczem jest ustawienie
DBUS_SESSION_BUS_ADDRESS
zmiennej środowiskowej.W tym wątku znalazłem następujący skrypt, który pomaga uzyskać poprawną wartość tej zmiennej. Wymaga nazwy procesu uruchomionego na pulpicie, na którym chcemy zmienić ustawienia dbus. (Równolegle może być więcej niż jedna sesja graficzna). Nazwijmy to
discover_session_bus_address.sh
Za pomocą tego skryptu możemy wykonać następujące czynności, zakładając, że
unity
proces działa na pulpicie, na którym chcemy zastosować nasze ustawienia:I wszystko powinno działać OK.
źródło
Miałem ten sam problem, próbując wprowadzić zmiany w ustawieniach dla błędnego obrazu za pośrednictwem SSH podczas udostępniania.
To rozwiązanie /ubuntu//a/326773 załatwiło sprawę bez żadnego połowu aktywnego połączenia i próby sfałszowania środowiska. YMMV ...
źródło
Mam skrypt POST-Install, który ustawia moje ustawienia. Ponieważ uruchamiam skrypt jako sudo, identyfikator EUID wynosi 0, dlatego muszę znaleźć $ RUID (rzeczywisty identyfikator użytkownika).
oto moje podejście:
źródło
$USER
zmiennej środowiskowej, a UID w$UID
zmiennej. Podczas działaniasudo
znajdują się w zmiennych$SUDO_USER
i$SUDO_UID
. To powiedziawszy, dlaczego w ogóle miałbyś tosudo
robić? Używaniesudo -u $YOUR_USER
jest tak samo jaksudo
całkowite nieużywanie . Wreszcie twojewho | awk . . .
polecenie nie otrzymuje twojego identyfikatora, drukuje wszystkie identyfikatory wszystkich użytkowników aktualnie zalogowanych w systemie.