Ich hatte das gleiche Problem, als ich mich über ssh remote in meine Gentoo-Box einloggte. In meinem Fall war dies , weil die XDG_RUNTIME_DIR
und DBUS_SESSION_BUS_ADDRESS
Umgebungsvariablen fehlten. Führen Sie die folgenden Befehle aus und versuchen Sie es erneut:
export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
Wenn dies hilft, können Sie diese Befehle in Ihre .bashrc-Datei einfügen. Ich denke, es muss eine elegantere Lösung als .bashrc geben, aber das hängt von Ihrer Distribution ab.
Hier habe ich diese Lösung gefunden.
Bearbeiten:
Als root angemeldet, konnte ich wie folgt erfolgreich systemctl --user
als anderer Benutzer ausgeführt werden su
:
su -c 'XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status' username
oder using sudo
(Hinweis, ich musste die jeweilige Benutzer-UID (1000) explizit zum Pfad '/ run / user /' hinzufügen, aber wenn Sie sie über ein Bash-Skript ausführen, können Sie stattdessen $ SUDO_UID verwenden):
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
. Ich denke,sudo
braucht diese Whitelist, weil es die Umgebung standardmäßig löscht. Ich bin mir jedoch nicht sicher, ob nur das Laufzeitverzeichnis des aktuellen Benutzers übertragen wird.