Daemon

新貴,啟動失敗無回饋

  • January 17, 2012

我在 /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 辨識出該過程何時已經開始,停止也可以正常工作。

有什麼建議麼?

您需要一個 post-start 節,它將查詢服務是否提供了預期執行的任何服務。所以像

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

添加守護服務的能力時,如果可能,請確保它在準備好處理請求之前不會分叉,然後“預期分叉”將正確延遲“啟動”條件,否則您仍然需要這篇文章-開始。

引用自:https://serverfault.com/questions/322502