Systemd

為什麼 systemd 說它的依賴系統只能謹慎使用?

  • February 2, 2021

從 systemd.unit(5) 手冊頁:

請注意,雖然 systemd 在單元之間提供了靈活的依賴系統,但建議僅少量使用此功能,而是依賴諸如基於匯流排或基於套接字的啟動等技術,這些技術使依賴關係隱式,從而使系統更加簡單和靈活。

我認為人們採用 systemd 是因為它讓事情變得更簡單、更靈活。現在 systemd 不同意。我剛收到一個 SIGSERIOUSLY?。

該建議旨在鼓勵

更簡單、更靈活的系統

甚至比使用依賴項更重要。

依賴是有用的,但是太多的顯式依賴引入了它們自己的約束:例如,依賴圖必須檢查循環。顯式依賴也會導致強排序約束。

想像一下,您有一個需要本地數據庫的 Web 應用程序。您可以使用顯式依賴來表示這一點:數據庫必須在 Web 應用程序之前啟動。您也可以使用基於套接字的啟動來表示這一點:數據庫偵聽套接字,因此對該套接字的任何訪問都可以被視為啟動數據庫的請求(如果它尚未執行)。使用基於套接字的啟動意味著 web 應用程序的服務描述不再需要知道它對數據庫的依賴,並且服務管理器不再需要等待數據庫啟動才能啟動 web 應用程序。

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