启动 dbus 服务的 systemd 服务

启动 dbus 服务的 systemd 服务

我想启动一个 python 脚本,用于pydbus在启动时监听通过 D-Bus 传入的命令,并且它需要 root 权限。如果可以通过 停止并重新启动就好了systemctl,所以我不想把它放入/etc/rc.local.

该脚本基于这个例子

我可以在终端(X11 会话和 tty)中很好地运行该脚本,并将命令发送到我的 dbus 服务器。但是当通过 systemd.service文件启动它时,它会抱怨gi.repository.GLib.Error: g-io-error-quark: Cannot autolaunch D-Bus without X11 $DISPLAY (0),因为我一直在使用 SessionBus。所以我转而使用 SystemBus,现在出现权限错误:Connection ":1.474" is not allowed to own the service这可能与/etc/dbus-1/system.d/.

所以我查看了其他一些服务来了解它们是如何工作的:

  • /usr/share/dbus-1/system-services/org.manjaro.pamac.daemon.service
  • /etc/dbus-1/system.d/org.manjaro.pamac.daemon.conf
  • /usr/lib/systemd/system/pamac-daemon.service

这就是我需要使用的所有东西吗?这真是太麻烦了,我尝试的一切都会导致新的错误。

有关于如何做到这一点的好的资源吗?

如何使用 systemd.service文件在启动时启动上面的链接示例?

答案1

我做了一个工作示例:

https://github.com/sezanzeb/systemd-pydbus-example

/usr/share/dbus-1/system-services/org.manjaro.pamac.daemon.service我最终不需要这个文件。

相关内容