新贵,没有反馈是否启动失败

我在/ opt / xyz / bin / xyz中有一个守护进程。 不幸的是,它不能把自己置于后台,在下半年内就不能这样做。 我的问题如下:进入

service xyz start 

只是返回

 xyz start/running, process 23484 

总是,即使它立即退出退出代码1.我的configuration是这样的:

 $ cat /etc/init/xyz.conf description "XYZ" start on started networking stop on shutdown exec /opt/xyz/bin/xyz 

其余的工作正常。 新贵认识到这个过程已经开始,停止工作也很好。

有什么build议么?

你需要一个启动后的节,它将询问服务是否提供预期要运行的任何服务。 所以像

 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 

在添加守护程序的function时,如果可能的话,确保它不会分叉,直到它准备好处理请求为止,那么'expect fork'会正确地延迟'started'条件,否则你仍然需要这个post-开始。