如何在另一个Upstart作业停止之前确保一个Upstart作业停止?

有时我的服务器通过ACPI关闭关闭,我已经设法让我的进程正常关闭。 但是,我的进程(作业A)在正常关闭期间依赖于另一个进程(作业B),因此我现在要确保在作业A停止之前作业B不会停止。

这两个进程都是Upstart作业,所以我尝试将其添加到Job B的/ etc / init文件中:

# Don't stop until job A stops pre-stop script while true do status A | grep -q "stop/waiting" && exit 0 sleep 1 done end script 

这似乎不起作用; 当我通过ACPI关闭关闭我的服务器时,作业B通常在作业A之前关闭,这样作业A会发出关于作业B没有启动的错误消息。

我的脚本有问题吗? 我应该采取另一种方法吗? 或者是不可能用Upstart做我想做的事情?

相关问题: 如何在依赖项之前停止作业?

您可以在作业A中使用这些选项:

  • 在依赖服务之前停止

     stop on stopping B 
  • 依赖服务后开始

     start on started B 

参考: http : //upstart.ubuntu.com/cookbook/#stop-on