Systemd

以相同的順序啟動和停止 systemd 單元

  • October 7, 2021

我應該如何在 systemd 中執行此操作?

start unit.A
started unit.A
start unit.B
started unit.B

stop unit.A
stopped unit.A
stop unit.B
stopped unit.B

我知道After=/Before=會在啟動/停止時像 AB -> BA 一樣反向訂購單位,但我需要 AB -> AB。

我的猜測是,我必須unit.Aunit.B類似的東西合併

unit.A.服務:

ExecStartPost=unit.A

並處理停止訂購ExecStopPost=

編輯:

似乎Upholds=and的組合PropagatesStopTo=可能會給我我想要的東西,或者非常接近,但事實證明,這些是添加的systemd version 249,但我必須讓它在241/上執行247

Upholds=我仍然對是否以及是否是正確的電話有學術興趣,我是否PropagatesStopTo=可以訪問systemd 249

我最終得到了這個:

thisunit_ExecStartPost.sh:

systemctl start otherunit

thisunit_ExecStop.sh:

systemctl stop otherunit

就我而言,otherunit如果失敗則通知,否則可能需要將thisunit停止移動到,這通常是一個更好的地方(但不是在我的項目中)。otherunit``thisunit_ExecStopPost.sh

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