无法创建 SystemD 用户服务“无法连接到总线:权限被拒绝”

无法创建 SystemD 用户服务“无法连接到总线:权限被拒绝”

试图逃跑

systemctl --user start my-service.service

在 Ubuntu 服务器 20.04 上,以非 root 用户身份运行

Failed to connect to bus: Permission denied

即使只是

systemctl --user

给出了同样的错误。

该用户已创建adduser --disabled-login my-user,可通过运行 进行访问su my-user

根据我发现的情况研究该问题后发现,似乎是su由于执行“登录”操作时某些环境变量未正确初始化导致的,而不是导致此问题。

展示你的作品:

  • libpam-systemd按照建议这里已安装
  • XDG_RUNTIME_DIR按建议设置这里不工作

答案1

您的用户服务很可能没有启动,因为需要到用户特定的总线套接字文件的路径/run/user/$UID/bus它是用户运行时环境的一部分) 在环境变量中没有正确设置DBUS_SESSION_BUS_ADDRESS...应该设置为类似于这样的内容:

$ echo "$DBUS_SESSION_BUS_ADDRESS"
unix:path=/run/user/1000/bus

如果未设置,则像这样设置并导出:

export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"

然后,尝试重新启动您的用户服务。

注意:但是,这需要一个主要由服务设置的用户运行时环境user@$UID.service和公司$UID是调用用户的 ID)... 这可能是你遇到的问题……如果它没有运行,请先使用sudo从管理员用户帐户)(将示例替换1003为用户的实际 ID)像这样:

sudo systemctl start [email protected]

相关内容