您如何告訴 systemd 目標滿足任何要求之一?

您如何告訴 systemd 目標滿足任何要求之一?

如何判斷systemd實例清單中的任意實例之一滿足某個要求?

假設我有一個名為 的目標main_target.target和一個名為 的服務模板[email protected]。在正常操作期間,唯一[email protected]存在的實例是:

  • serv@ex1
  • serv@ex2
  • serv@ex3

僅有的這些實例在任何給定時間都存在,我想說的是,main_target.target只要任何存在這三個實例。

直覺上,我想要類似於 SMFrequire_any標籤的東西,但我在任何文件中都找不到類似的東西systemd

註1:我知道我可以使serv@ex1serv@ex2serv@ex3和 與指示互斥Conflicts=

註 2:我還知道我可以使用Before=After=指令對三個實例進行分層,以按特定順序啟動。

答案1

正如您所提到的,您可以使服務與Conflicts=指令相互排斥。目標systemd只是將單元分組在一起的一種方法,它們沒有複雜的依賴選項。

systemd.目標

名稱以「.target」結尾的單元設定檔編碼有關 systemd 目標單元的信息,用於對單元進行分組以及啟動期間眾所周知的同步點。

此單位類型沒有特定選項。所有單元設定檔的通用選項請參閱systemd.unit(5)。通用設定項在通用的[Unit]和[Install]部分中配置。不存在單獨的 [Target] 部分,因為無法配置特定於目標的選項。

系統單元以供參考。

您只能使用 中包含的指令systemd.unit,而且它不包含僅啟動多個服務之一的方法。

相關內容