Miałem ten sam problem, kiedy zdalnie zalogowałem się do mojego Gentoo Box poprzez ssh. W moim przypadku było to spowodowane brakiem zmiennych środowiskowych XDG_RUNTIME_DIR
i DBUS_SESSION_BUS_ADDRESS
. Uruchom następujące polecenia i spróbuj ponownie:
export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
Jeśli to pomoże, możesz umieścić te polecenia w swoim .bashrc. Myślę, że musi być bardziej eleganckie rozwiązanie niż .bashrc, ale to zależy od twojej dystrybucji.
Tutaj znalazłem to rozwiązanie.
Edytować:
zalogowałem się jako root, udało mi się pomyślnie uruchomić systemctl --user
jako inny użytkownik, używając su
:
su -c 'XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status' username
lub używając sudo
(uwaga, musiałem jawnie dodać odpowiedni identyfikator użytkownika (1000) do ścieżki „/ run / user /”, ale jeśli uruchamiasz go ze skryptu bash, możesz zamiast tego użyć $ 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
. Sądzę, żesudo
potrzebuje tych na białej liście, ponieważ domyślnie czyści środowisko. Nie jestem jednak pewien, czy po prostu przeniesie katalog wykonawczy bieżącego użytkownika.