
如何判斷systemd
實例清單中的任意實例之一滿足某個要求?
假設我有一個名為 的目標main_target.target
和一個名為 的服務模板[email protected]
。在正常操作期間,唯一[email protected]
存在的實例是:
serv@ex1
serv@ex2
serv@ex3
僅有的一這些實例在任何給定時間都存在,我想說的是,main_target.target
只要任何存在這三個實例。
直覺上,我想要類似於 SMFrequire_any
標籤的東西,但我在任何文件中都找不到類似的東西systemd
。
註1:我知道我可以使serv@ex1
、serv@ex2
、serv@ex3
和 與指示互斥Conflicts=
。
註 2:我還知道我可以使用Before=
和After=
指令對三個實例進行分層,以按特定順序啟動。
答案1
正如您所提到的,您可以使服務與Conflicts=
指令相互排斥。目標systemd
只是將單元分組在一起的一種方法,它們沒有複雜的依賴選項。
名稱以「.target」結尾的單元設定檔編碼有關 systemd 目標單元的信息,用於對單元進行分組以及啟動期間眾所周知的同步點。
此單位類型沒有特定選項。所有單元設定檔的通用選項請參閱systemd.unit(5)。通用設定項在通用的[Unit]和[Install]部分中配置。不存在單獨的 [Target] 部分,因為無法配置特定於目標的選項。
系統單元以供參考。
您只能使用 中包含的指令systemd.unit
,而且它不包含僅啟動多個服務之一的方法。