2013-03-08 2 views
3

Иногда кажется, что запуск bin/instance не выполняется для сайта Plone. СимптомыPlone bin/instance start и bin/instance restart fail иногда

  • Сайт был запущен на некоторое время без обслуживания

  • Один работает Buildout: bin/buildout

  • Один пытается перезапустить сайт, используя bin/instance start или bin/instance restart

  • Сайт не запускается. На консоль ничего не записывается.

  • Однако, если запустить bin/instance fg первый сайт запустился

Это влияет как Plone 3.x и 4.x сайтов Plone.

Ниже приведен пример того, как проходит процесс. Вы можете видеть, что сайт действительно не запускается, несмотря на предоставление рестарта и начать, но в конце концов приходят с фгом:

*************** /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 начала. Хотя оба состояния бина/экземпляра или прокси-сервер переднего конца не согласны. Вы видите это в журналах.

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

Любые идеи, как отлаживать это дальше?

Это может быть какое-то состояние гонки/медленный запуск проблемы?

Может быть, что процесс тихо умирает после Ready to handle

ли obeserved такое же поведение других людей?

+0

Мы видим подобное поведение здесь и соглашаемся, что это какая-то проблема времени. В сочетании с тем, что перезапуск может сработать (!), Если в это время произошла новая сборка, мы остановились на использовании 'stop; сон 2; start ", который отлично подходит для нас. –

ответ

5

Если bin/buildout восстанавливает экземпляр, он также удалит и перестроит каталог parts/instance.

Это тот каталог, который содержит несколько элементов, которые делают bin/instance restartсбой; процесс демона, который управляет перезагрузкой, сам по себе больше не завершен.

Вы должны использовать bin/instance stop, чтобы остановить экземпляр и процесса, а затем в режиме демона с помощью bin/instance start (что создает новый новый процесс демона).

+0

... тем не менее, лучше всего использовать супервизор, затем «bin/supervisorctl restart» –

+0

@keul: конечно, но обратите внимание, что потенциально «супервизор» может пострадать от той же участи. Я не сталкивался с этим, но я подозреваю, что это возможно, если вы должны хранить сокет в подкаталоге 'parts', который вы могли бы завести в состояние супервизора так же. :-) –

+0

Вы уверены? Я никогда не получаю эту проблему с помощью супервизора ... но, вероятно, потому, что мы настраиваем супервизор для выполнения остановки и запуска при вызове перезапуска! –

Смежные вопросы