J'ai eu le même problème lorsque je me suis connecté à distance à ma gentoo box via ssh. Dans mon cas, c'était parce que les variables XDG_RUNTIME_DIR
et l' DBUS_SESSION_BUS_ADDRESS
environnement étaient manquantes. Exécutez les commandes suivantes et réessayez:
export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
Si cela vous aide, vous pouvez mettre ces commandes dans votre .bashrc. Je suppose qu'il doit y avoir une solution plus élégante que .bashrc mais cela dépend de votre distribution.
Voici où j'ai trouvé cette solution.
Éditer:
connecté en tant que root, j'ai réussi à exécuter avec succès un systemctl --user
autre utilisateur en utilisant su
comme suit:
su -c 'XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status' username
ou en utilisant sudo
(remarque, j'ai dû ajouter explicitement l'UID des utilisateurs respectifs (1000) au chemin '/ run / user /', mais si vous l'exécutez à partir d'un script bash, vous pouvez utiliser $ SUDO_UID à la place):
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
. J'imagine qu'il asudo
besoin de ces listes blanches, car il efface l'environnement par défaut. Je ne sais pas si cela transférera simplement le répertoire d'exécution de l'utilisateur actuel.