2013-03-08 123 views
3

有時它看起來像一個Plone站點的bin /實例啓動失敗。症狀Plone bin /實例啓動和bin /實例重啓失敗有時

  • 該網站已經運行了一段時間沒有維護

  • 一個運行擴建:bin/buildout

  • 當一個人試圖用bin/instance startbin/instance restart

  • 該網站重新啓動網站沒有開始。什麼都不記錄到控制檯。

  • 但是,如果運行bin/instance fg第一的網站確實開始

這影響的Plone 3.x和4.x版的Plone網站。

下面是一個過程如何進行的示例。你可以看到,該網站並沒有真正啓動,儘管給予重新開始,但最後還是想出了FG:

*************** /PICKED VERSIONS *************** 
[email protected]:/srv/plone/zzz$ bin/instance restart 
. 
daemon process restarted, pid=27819 
[email protected]:/srv/plone/zzz$ bin/instance start 

daemon process started, pid=27945 
[email protected]:/srv/plone/zzz$ bin/instance status 
daemon manager not running 
[email protected]:/srv/plone/zzz$ bin/instance fg 
2013-03-08 04:18:11 INFO ZServer HTTP server started at Fri Mar 8 04:18:11 2013 
    Hostname: 0.0.0.0 
    Port: xxxx 

從日誌文件,它看起來像它已經達到了Zope的開始。雖然bin/instance狀態或上游前端代理服務器都不同意。你在日誌中看到這個。

2013-03-08T04:19:21 INFO Zope Ready to handle requests 

任何想法如何進一步調試?

它可能是某種競爭條件/慢啓動問題?

難道過程後Ready to handle

有其他人obeserved相同的行爲默默地死去?

+0

我們在這裏看到類似的行爲,並同意它似乎是某種時間問題。 再加上重啓可能會崩潰(!),如果在此期間發生了新的擴展,我們已經決定使用'stop;睡2;開始'這對我們很好。 – 2013-03-08 06:50:26

回答

5

如果bin/buildout重建實例,那麼它也會刪除並重新構建parts/instance目錄。

這是一個目錄,它包含幾個項目,使bin/instance restart失敗;管理重啓的守護進程本身不再完整。

您需要使用bin/instance stop停止實例的daemonizing過程,隨後bin/instance start(這將創建一個全新的守護進程)。

+0

...但是,你可以做的更好的事情是使用supervirsor,然後「bin/supervisorctl restart」 – 2013-03-08 11:59:14

+0

@keul:當然,但請注意,潛在的'supervisord'可能會遭受同樣的命運。我還沒有遇到過,但我懷疑如果你將套接字存儲在''parts'子目錄中,你可能會把'supervisord'狀態搞得一團糟。 :-) – 2013-03-08 12:03:25

+0

你確定嗎?我從來沒有使用supervisor來解決這個問題......但可能是因爲我們配置主管在我們調用重啓時執行stop&start! – 2013-03-08 13:08:38