我正在尝试从用户帐户运行,systemctl --user status
以便不从 root 运行服务。
我的做法如下:
loginctl enable-linger $USER
export XDG_RUNTIME_DIR="/run/user/$UID"
然后当我运行时systemctl --user status
出现以下错误:Failed to connect to bus: No such file or directory
我尝试调试这个。
- 通过以下方式设置
DBUS_SESSION_BUS_ADDRESS
环境变量:export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
这并没有解决问题。(来源) - 每次更改后重新启动服务器。
- 重新安装 dbus
sudo apt reinstall dbus-user-session
我不确定还能尝试什么或如何更多地了解这个问题,以便能够以更明智的方式解决这个问题。
任何可以帮助我调试和理解这一点的信息都非常受欢迎。
PS 我正在运行 Ubuntu 20.04.5,问题很可能发生在sudo apt-get upgrade
我运行之后。在此之前它运行良好。
答案1
我遇到了同样的问题。我正在使用sssd
,在看到您的帖子后,我发现通过安装解决了我的问题sssd-dbus
。我相信这是之前包含在中的依赖项,sssd
但是当我最近将主机从 18.04 升级到 20.04 时没有安装它。
手动安装后sssd-dbus
,重新启动dbus.socket
。当然这可能只适用于你正在使用的情况sssd
。