Вставить (Python) веб-сервер - проблема автозагрузки - PullRequest
3 голосов
/ 10 августа 2009

Когда я запускаю веб-сервер «Вставить» в режиме демона, он, кажется, лишает его возможности перезагрузки при обновлении временной метки исходного файла.

Вот как я запускаю демон ...

cd ${project} && ../bin/paster serve --reload --daemon development.ini; cd ..;

... который побеждает один из основных пунктов использования Paste (для меня).

Кто-нибудь сталкивался с этим или знает, что я делаю не так?

Чтобы завершить, файл, который я изменяю, является файлом контроллера.

Версия `PasteScript 1.7.3 '

Ответы [ 2 ]

5 голосов
/ 10 августа 2009

Я полагаю, что эти два варианта по существу несовместимы, так как перегрузчик останавливает сервер с помощью SIGTERM, а демонизированный сервер невосприимчив к этому - и поскольку daemon предназначен для работы в производственной среде, а reload для среды разработки / отладки, я полагаю, что их несовместимость не рассматривается как большая потеря. Я полагаю, что можно разработать специализированный перегрузчик, предназначенный для правильной остановки и перезапуска демонизированного сервера, но я не знаю ни одного из существующих.

3 голосов
/ 10 августа 2009

У меня была похожая проблема, и я ее обошел. В настоящее время у меня запущен Paster на удаленном хосте, но я все еще развиваюсь, поэтому мне потребовались средства для перезапуска Paster, но ручная работа вручную была слишком трудоемкой, и демон не работал. Поэтому мне всегда приходилось держать окно оболочки открытым для сервера и запускать paster без --daemon. Когда я закончил свою работу на тот день и закрыл раковину, умер пастер, что плохо.

Я обошел это, запустив paster, не демонизированный в "screen". Просто введите «screen» в выбранной вами оболочке, и вы, в зависимости от вашего linux, будете иметь виртуальный терминал, который будет работать даже после выхода из удаленного сеанса. Запустите paster, как обычно, в вашем новом «окне» (экране) с --reload, но без демона, а затем отсоедините окно, чтобы вы могли вернуться к обычной оболочке (detach = CTRL-A, затем нажмите D). Вы можете снова войти в этот экран, набрав «screen -r». Если вы хотите убить его, заново подключите его (screen -r) и внутри экрана наберите CTRL-A, затем нажмите K.

Надеюсь, это поможет.

...