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
文件在啟動時啟動上面的連結範例?
我做了一個工作範例:
https://github.com/sezanzeb/systemd-pydbus-example
最後我不需要這個
/usr/share/dbus-1/system-services/org.manjaro.pamac.daemon.service
文件。