Мне нужно автоматизировать настройку рабочего стола через Puppet, виртуальный терминал или SSH.
К сожалению, вызов gsettings
через ssh или виртуальный терминал дает:
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
Когда я установил $DISPLAY
с, export DISPLAY=:0.0
это дает еще одну ошибку:
(process:29862): dconf-WARNING **: failed to commit changes to dconf: Could not connect: Connection refused
Что я могу сделать?
remote-access
dconf
gsettings
puppet
remote-login
Адам Рычковски
источник
источник
DBUS_SESSION_BUS_ADDRESS
, но иXDG_RUNTIME_DIR
.Ответы:
Ключ должен установить
DBUS_SESSION_BUS_ADDRESS
переменную среды.В этой теме я нашел следующий скрипт, который помогает получить правильное значение этой переменной. Требуется имя процесса, который запущен на рабочем столе, на котором мы хотим изменить настройки dbus. (Может быть более 1 параллельных графических сессий). Давай называть это
discover_session_bus_address.sh
С помощью этого скрипта мы можем сделать следующее, предполагая, что
unity
процесс запущен на рабочем столе, к которому мы хотим применить наши настройки:И все должно работать хорошо.
источник
У меня возникла такая же проблема при попытке внести изменения в gsettings для бродячего образа через SSH во время подготовки.
Это решение /ubuntu//a/326773 помогло мне без всякой ловли активного соединения и попыток подделать окружающую среду. YMMV ...
источник
У меня есть скрипт POST-Install, который устанавливает мои настройки. Поскольку я запускаю скрипт как sudo, EUID равен 0, поэтому мне нужно найти $ RUID (реальный идентификатор пользователя).
вот мой подход:
источник
$USER
переменной среды, а ваш UID - в$UID
переменной. При запускеsudo
, они находятся в$SUDO_USER
и$SUDO_UID
переменных. Тем не менее, зачем вообще запускать этоsudo
? Использовать такsudo -u $YOUR_USER
же, как не использоватьsudo
вообще. Наконец, вашаwho | awk . . .
команда не получает ваш идентификатор, она печатает все идентификаторы всех пользователей, которые в данный момент вошли в систему.