Tuve el mismo problema cuando inicié sesión de forma remota en mi caja de gentoo a través de ssh. En mi caso esto se debía a que los XDG_RUNTIME_DIR
y DBUS_SESSION_BUS_ADDRESS
variables de entorno faltaban. Ejecute los siguientes comandos e intente nuevamente:
export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
Si esto ayuda, puede poner esos comandos en su .bashrc. Supongo que debe haber una solución más elegante que .bashrc, pero eso depende de su distribución.
Aquí es donde encontré esa solución.
Editar:
conectado como root, logré ejecutarme con éxito systemctl --user
como otro usuario usando su
lo siguiente:
su -c 'XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status' username
o usando sudo
(nota, tuve que agregar explícitamente el UID de usuario respectivo (1000) a la ruta '/ run / user /', pero si lo está ejecutando desde un script bash, puede usar $ SUDO_UID en su lugar):
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
. Supongo quesudo
necesita esas listas blancas, porque borra el entorno de forma predeterminada. Sin embargo, no estoy seguro de si solo transferirá el directorio de tiempo de ejecución del usuario actual.