由于 DBus 访问权限,无法访问 systemd --user

Ada*_*ers 6 fedora d-bus systemd

我正在尝试使用 systemd 单元设置服务帐户来管理实际服务 + 支持代码。但是,systemd 用户守护程序似乎无法正常工作。

$ systemctl --user
Failed to get D-Bus connection: Permission denied
Run Code Online (Sandbox Code Playgroud)

编辑:通过确保我有一个交互式 shell(使用 su - 而不是 su 切换到服务帐户),我取得了一些进展。这有帮助,但看起来我的 D-Bus 困境还没有结束:

$ systemctl --user
Failed to get D-Bus connection: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我正在尝试弄清楚我需要做些什么来确保该用户确实具有 dbus 访问权限。将它们添加到 dbus 组几乎没有什么好处。

$ groups
printing lp rpc dbus users chrony ipausers
Run Code Online (Sandbox Code Playgroud)

我正在运行 Fedora Core 23

Tim*_*ier 1

如果我理解正确的话,您混淆了两个不同的概念:

  • 主systemd系统实例用于在任何系统用户下启动系统服务;
  • 用户特定的 systemd 实例是为希望运行会话服务的交互式用户提供的。

系统服务不会获取用户实例,因为它们由系统实例管理。就您而言,我认为您应该将您的单元编写为系统单元,并让它们直接由 systemd PID 1 管理。