Eu tive o mesmo problema quando fiz login remotamente na minha caixa do gentoo via ssh. No meu caso, isso ocorreu porque as variáveis de ambiente XDG_RUNTIME_DIR
e DBUS_SESSION_BUS_ADDRESS
estavam ausentes. Execute os seguintes comandos e tente novamente:
export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
Se isso ajudar, você pode colocar esses comandos em seu .bashrc. Eu acho que deve haver uma solução mais elegante que o .bashrc, mas isso depende da sua distro.
Aqui é onde eu encontrei essa solução.
Editar:
logado como root, consegui executar com sucesso systemctl --user
como outro usuário usando su
da seguinte forma:
su -c 'XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status' username
ou usando sudo
(note que eu tive que adicionar explicitamente os usuários UID (1000) para o caminho '/ run / user /', mas se você está rodando a partir de um script você pode usar $ SUDO_UID ):
sudo -u username XDG_RUNTIME_DIR="/run/user/1000" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status