我有一个名为服务 C 的服务。它具有以下启动和停止条件:
start on ( started A and started B)
stop on (stopping A or stopping B)
当我手动停止 A 时,C 也会停止。但是,当我启动 A 时,除非我也停止并启动 B,否则 C 不会启动。
我希望当 A 和 B 都在运行时 C 也能运行,但上述条件无法实现这一点。您对启动条件应该是什么样子有什么想法吗?
谢谢!
答案1
将您的开始节更改为“或”,如下所示:
start on ( started A or started B )
然后添加一个预启动脚本,检查两个服务是否都在运行,如果没有,则中止启动。例如:
pre-start script
if [ -z `status A | grep running` ] || [ -z `status B | grep running` ]; then
stop ; exit 0
fi
end script
请参阅食谱。可能有更好的方法来检查服务是否正在运行,但这对我来说很有效。请根据您的需要进行调整。