Відповіді:
У мене була така ж проблема, коли я віддалено увійшов у свій gentoo box через 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
потрібні ті, що містяться у списках, оскільки це очищає середовище за замовчуванням. Я не впевнений, чи це просто передасть поточний користувач часу виконання режиму.