Ответы:
У меня была такая же проблема, когда я удаленно вошел в свой ящик gentoo через ssh. В моем случае это было потому , что XDG_RUNTIME_DIR
и DBUS_SESSION_BUS_ADDRESS
переменные окружения отсутствовали. Выполните следующие команды и попробуйте снова:
export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
Если это поможет, вы можете поместить эти команды в ваш .bashrc. Я думаю, что должно быть более элегантное решение, чем .bashrc, но это зависит от вашего дистрибутива.
Редактировать:
вошел в систему как root, мне удалось успешно запустить systemctl --user
от имени другого пользователя, используя su
следующие:
su -c 'XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status' username
или используя sudo
(заметьте, мне пришлось явно добавить соответствующий UID пользователя (1000) к пути '/ run / user /', но если вы запускаете его из скрипта bash, вы можете использовать вместо него $ SUDO_UID):
sudo -u username XDG_RUNTIME_DIR="/run/user/1000" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status
/etc/profile.d/dbus.sh
. Я думаю,sudo
нужны те, кто внесен в белый список, потому что он очищает среду по умолчанию. Я не уверен, что он просто передаст директорию текущего пользователя.