![以相同的顺序启动和停止 systemd 单元](https://linux22.com/image/195548/%E4%BB%A5%E7%9B%B8%E5%90%8C%E7%9A%84%E9%A1%BA%E5%BA%8F%E5%90%AF%E5%8A%A8%E5%92%8C%E5%81%9C%E6%AD%A2%20systemd%20%E5%8D%95%E5%85%83.png)
我应该如何在 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.A
与合并unit.B
,类似于
单位.A.服务:
ExecStartPost=unit.A
并处理 中的停止订购ExecStopPost=
。
编辑:
看起来 和 的组合Upholds=
可能PropagatesStopTo=
会给我我想要的东西,或者非常接近,但事实证明,这些都被添加到 中systemd version 249
,但我必须让它在241
/上运行247
。
我仍然对学术感兴趣,如果Upholds=
我PropagatesStopTo=
能够访问的话,这是否是正确的选择systemd 249
?
答案1
我最终得到了这个:
thisunit_ExecStartPost.sh:
systemctl start otherunit
这个unit_ExecStop.sh:
systemctl stop otherunit
就我而言,otherunit
如果thisunit
失败,则通知,否则otherunit
可能需要将停止移动到thisunit_ExecStopPost.sh
,这通常是一个更好的地方(但不在我的项目中)。