我有一個在nginx下運行的三個mongrels羣集,我使用Capistrano 2.4.3部署應用程序。當我在運行系統時進行「cap deploy」時,其行爲如下:Capistrano沒有正確地重新啓動Mongrel羣集
- 該應用程序已部署。代碼已成功更新。
在帽部署輸出,有這樣:
- 執行「命令-p '須藤密碼:' mongrel_rails簇::重啓-C /無功/網絡/軌道/ MyApp的/當前/配置/ mongrel_cluster.yml」
- 服務器:[ 「MYIP」]
- [MYIP]執行命令
- ** [出:: MYIP]停止端口9096
- ** [出:: MYIP]停止港口9097
- ** [出:: MYIP]停止端口9098
- ** [出:: MYIP]已經開始端口9096
- ** [出:: MYIP]已經開始端口9097
- ** [出:: MYIP]已經開始端口9098
- 我立即檢查服務器上,發現雜種仍在運行,以及PID文件仍在爲前三個實例。
- 不久後(不到一分鐘),我發現Mongrel不再運行,PID文件不見了,並且重啓失敗。
- 如果我手動啓動服務器上的mongrel,應用程序啓動就好了。
好像「mongrel_rails集羣::重啓」嘗試在集羣的重新啓動之前未正確等待一個句號 。如何診斷和解決此問題?
編輯:這裏的答案:
mongrel_cluster,在「重啓」任務,只要做到這一點:
def run
stop
start
end
它沒有做任何等待或檢查,看看該程序前退出調用「開始」。這是a known bug with an outstanding patch submitted。我將這個補丁應用於Mongrel Cluster,問題消失了。
這是正確的道路。看到我的編輯問題:有一個修補mongrel_cluster修補行爲的補丁。 – Pete 2008-10-02 16:53:12