Linux

使用 systemd 和舊版 init.d 服務的服務順序

  • February 23, 2016

在我的 Fedora 23 系統上,一個數據庫是由 systemd 啟動的。依賴於該數據庫的另一個服務(hive-metastore)是通過 init.d 腳本啟動的。我不清楚使這些服務以正確的順序啟動的正確方法是什麼(在 hive-megastore 之前的數據庫)。

最好的解決方案很可能只是為 hive-metastore 服務編寫一個 systemd 單元 - 只要它具有相同的名稱 systemd 將優先使用它而不是 init 腳本,並且它可能更容易閱讀和可靠得多。

Before=hive-metastore.service不過,您可以通過添加到數據庫服務單元來控制排序。最好使用 dropin 片段來完成,因此使用以下內容創建類似/etc/systemd/system/database-name.service.d/hive-metastore.conf的內容:

[Unit]
Before=hive-metastore.service

如果兩者都是本機 systemd 單元,您將不會這樣做,因為在這種情況下,您可能會將配置添加到其他服務,並使用兩者After來控制排序並Requires確保數據庫已啟動,但僅排序就足夠了如果啟用了這兩個服務並且可以從依賴項的任一端控制排序。

引用自:https://serverfault.com/questions/759122