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

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

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

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

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

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

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

Версия `PasteScript 1.7.3'

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам