以相同的顺序启动和停止 systemd 单元

以相同的顺序启动和停止 systemd 单元

我应该如何在 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,这通常是一个更好的地方(但不在我的项目中)。

相关内容