使用启动后睡眠时,upstart将死进程标记为正在运行

时间:2016-03-04 11:00:41

标签: bash startup upstart

我的流程需要一些时间才能启动,也可能会失败。在我的代码示例中,此行为在脚本块中进行了模拟。相关进程应在主进程启动时启动。因此,我在启动后的脚本中添加了sleep 2。

#!upstart

post-start script
    sleep 2
end script

script
    sleep 1
    false
end script

这很好用:开始:作业无法启动

问题是服务在这2秒内启动两次:第一次调用按预期失败,但第二次调用有效,而upstart认为该进程正在从其上运行:

service foo start
start: Job failed to start
service foo start
foo start/running

有更好的方法吗?我也可以将此延迟添加到依赖进程,但它不是很优雅...也没有启动后的睡眠,进程总是会在短时间后开始并在后台死亡。这样,如果主进程在1秒内死亡,用户就会立即获得反馈。

0 个答案:

没有答案