当 Upstart 服务所依赖的服务启动时,Upstart 服务却没有启动

当 Upstart 服务所依赖的服务启动时,Upstart 服务却没有启动

我有一个名为服务 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

请参阅食谱。可能有更好的方法来检查服务是否正在运行,但这对我来说很有效。请根据您的需要进行调整。

相关内容