我在/ 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-开始。