我正在尝试使用 systemd 单元设置一个服务帐户来管理实际的服务+支持代码。但是,systemd 用户守护程序似乎无法正常工作。
$ systemctl --user
Failed to get D-Bus connection: Permission denied
编辑:通过确保我有一个交互式 shell(使用 su - 而不是 su 切换到服务帐户),我已经取得了一些进展。这很有帮助,但看起来我的 D-Bus 困境还没有结束:
$ systemctl --user
Failed to get D-Bus connection: No such file or directory
我正在尝试弄清楚我需要做什么来确保该用户确实具有 dbus 访问权限。将它们添加到 dbus 组并没有什么好处。
$ groups
printing lp rpc dbus users chrony ipausers
我正在运行 Fedora Core 23
答案1
如果我理解正确的话,您混淆了两个不同的概念:
- 主systemd系统实例用于在任何系统用户下启动系统服务;
- 用户特定的 systemd 实例是为希望运行会话服务的交互式用户提供的。
系统服务不会获取用户实例,因为它们由系统实例管理。就您而言,我认为您应该将您的单元编写为系统单元,并让它们直接由 systemd PID 1 管理。