2014-09-23 148 views
0

我在啓動構建過程(Ubuntu)時使用獨角獸,當啓動構建過程時,自動使用以下日誌自動殺死獨角獸。獨角獸自動死亡

I, [2014-09-23T06:59:58.912673 #16717] INFO -- : reaped #<Process::Status: pid 16720 exit 0> worker=0 
I, [2014-09-23T06:59:58.913144 #16717] INFO -- : reaped #<Process::Status: pid 16722 exit 0> worker=1 
I, [2014-09-23T06:59:58.913464 #16717] INFO -- : master complete 

我無法找到爲什麼這是錯誤正在發生。

+8

我對麒麟一無所知(甚至從未聽說過),但+1的主題標題 – Joe 2014-09-23 11:19:30

回答

2

看起來你的獨角獸服務器通過向主進程發送一個SIGQUIT而正常關閉。在這種情況下,主進程在完成當前請求後收回其所有工作進程,然後自行關閉。獨角獸支持更多的信號來觸發某些行爲(例如添加或刪除工作人員,重新加載自己......)。您可以在麒麟的SIGNALS文檔中瞭解更多信息。

SIGQUIT可能是由您的部署過程引起的,它可能會嘗試重新加載/重新啓動您的獨角獸,但會死掉一些奇怪的東西。一般來說,您應該查看您的獨角獸初始化腳本或信號發送的部署過程(例如,使用kill命令)。

+0

啊我看到了。我正在發佈一個kill $(ps -ef | grep unicorn | awk'{if($ 8 ==「unicorn」和$ 9 ==「master」)print $ 2}'),以便我的代碼更改由獨角獸選取。我想我需要找到另一個重新加載代碼更改的信號。 – Jani 2014-09-23 11:56:10

+0

一個普遍接受的模式(當使用'preload_app true'時)是向主設備發送一個SIGUSR2,然後在新設備確認後向舊工作人員發送一個單獨的SIGQUIT。如果你有一點谷歌,你會發現各種獨角獸配置完成SIGQUIT發送'after_fork'或'before_fork'掛鉤。 – 2014-09-23 12:01:00

+0

我現在在做一個unicorn_pid ='cat tmp/pids/unicorn.pid' echo「重新啓動Unicorn($ unicorn_pid)」 kill -HUP $ unicorn_pid多謝你省了很多頭痛:) – Jani 2014-09-23 12:47:05