我正在尝试使用 systemd sd-bus API 从程序中启动/停止/确定用户 systemd 服务文件的状态,而不是以 root 身份运行。
让我们继续讨论确定状态的示例。我在命令行上测试了这些东西。我在准备环境时取得了一些进展:
$ export XDG_RUNTIME_DIR=/run/user/$(id -u)
和
$ export $(dbus-launch)
我在网上搜索时在不同的来源中找到了它。与特定用户通话时:
$ busctl --user --verbose get-property \
org.freedesktop.systemd1 \
/org/freedesktop/systemd1/unit/myservice \
org.freedesktop.systemd1.Unit ActiveState
结果:
Process org.freedesktop.systemd1 exited with status 1
之前是“权限被拒绝”之类的内容。当以 root 身份运行时,没有用户标志,给了我所需的输出。
有人有任何提示我可能会错过什么吗?