Debian

如何防止 D-Bus 啟動(禁用)其他守護程序?

  • July 12, 2021

最近我注意到rtkit-daemon在我的 Debian 10.4 機器上執行的程序可能會干擾該機器上的自定義伺服器應用程序。所以我想像這樣禁用那個實時工具包守護程序:

$ sudo systemctl stop rtkit-daemon.service
$ sudo systemctl disable rtkit-daemon.service

那正確地停止(並禁用)了該rtkit-daemon過程。但是,過了一會兒,我注意到它再次執行,並且在 syslog 中我發現了以下幾行:

Jun 12 16:15:12 box-63 dbus-daemon[453]: [system] Activating via systemd: service name='org.freedesktop.RealtimeKit1' unit='rtkit-daemon.service' requested by ':1.6746' (uid=1000 pid=11857 comm="python pipecheck.py")
Jun 12 16:15:12 box-63 systemd[1]: Starting RealtimeKit Scheduling Policy Service...
Jun 12 16:15:12 box-63 dbus-daemon[453]: [system] Successfully activated service 'org.freedesktop.RealtimeKit1'
Jun 12 16:15:12 box-63 systemd[1]: Started RealtimeKit Scheduling Policy Service.

python pipecheck.py是我們的自定義應用程序。

為什麼 D-Bus 首先要為我們的應用程序啟動實時套件?

無論如何,顯然dbus-daemon已經重新啟動了rtkit-daemon.

我怎樣才能防止這種情況並永久禁用實時工具包守護程序?

歡迎使用桌面匯流排匯流排啟動!這是一種痛苦,應該避免。

一個桌面匯流排客戶端(某種)正在請求桌面匯流排代理與org.freedesktop.RealtimeKit1D-Bus 伺服器進行通信。當rtkit-daemon程序執行時,它會向 D-Bus 代理註冊自己作為這個名稱。當它不執行時,代理呼叫D-Bus 匯流排啟動

當客戶在這種情況下詢問 D-Bus 代理時,代理會查看org.freedesktop.RealtimeKit1.service文件中指定的內容。(這不是一個 systemd 服務單元文件,而是一個 D-Bus 配置文件,位於 下/usr/{local/,}share/dbus-1/system-services/,D-Bus 也使用.service副檔名。)代理從這個文件中了解到,只有在 systemd 系統上,org.freedesktop.RealtimeKit1伺服器才作為rtkit-daemon.servicesystemd 服務進行管理。

systemd代理通過相同的桌面匯流排與一個特殊且未記錄org.freedesktop.systemd1.Activator 的 D-Bus服務名稱交談,要求它通過一條消息啟動rtkit-daemon.service systemd服務。ActivationRequest此未記錄的啟動功能沒有僅在啟用時啟動服務的概念。它總是啟動服務,即使它被禁用。

因此,具有諷刺意味的是,您不能rtkit-daemon使用明顯的禁用方法來禁用它,disable命令。您可以改為:

  • org.freedesktop.RealtimeKit1.service…用您自己的文件覆蓋文件,其中不包含啟動org.freedesktop.RealtimeKit1D-Bus 伺服器的方法;
  • …找出 D-Bus 客戶端的要求org.freedesktop.RealtimeKit1,使用busctl monitor,然後停止它;或者
  • 屏蔽rtkit-daemon.servicesystemd 服務,因此即使桌面匯流排代理通過特殊且未記錄的 API 請求啟動,systemd本身也不知道如何啟動它。

這是 mysystem-control有一個reset動詞(根據其目前啟用/禁用狀態啟動/停止服務)並且我的替換dbus-daemon-launch-helper呼叫system-control reset而不是system-control activate.

進一步閱讀

引用自:https://unix.stackexchange.com/questions/592542