Upstart,没有反馈是否启动失败

Upstart,没有反馈是否启动失败

我在 /opt/xyz/bin/xyz 中有一个守护进程。不幸的是,它无法将自己分叉到后台,并且在接下来的半年内也无法这样做。我的问题如下:输入

service xyz start

刚刚返回

xyz start/running, process 23484

总是如此,即使它立即以退出代码 1 退出。我的配置是这样的:

$ cat /etc/init/xyz.conf
description "XYZ"

start on started networking
stop on shutdown

exec /opt/xyz/bin/xyz

其余工作正常。Upstart 可以识别进程何时启动,停止工作也正常。

有什么建议么?

答案1

您需要一个启动后节来查询服务是否正在提供预期运行的服务。因此,类似

post-start script
  for try in 1 2 3 4 5 ; do
    if xyzadmin --ping ; then
      exit 0
    fi
    sleep 1
  done
  logger -t xyz-upstart -p daemon.err "failed to start within $try seconds, aborting"
  exit 1
end script

当添加守护服务的能力时,如果可能的话,请确保它在准备好处理请求之前不会分叉,然后“期望分叉”将正确延迟“启动”条件,否则您仍然需要这个启动后条件。

相关内容