Я последовал за этот руководство по настройке Flask с помощью nginx + uwsgi.
Я создал сценарий выскочки на /etc/init/flask-uwsgi.conf
:
start on [2345]
stop on [06]
pre-start script
mkdir -p /var/run/flask-uwsgi
chown www-data:www-data /var/run/flask-uwsgi
end script
script
cd /var/flask-uwsgi
exec uwsgi --ini /etc/flask-uwsgi/flask-uwsgi.ini
end script
Для работы каталог /var/run/flask-uwsgi
должен быть создан с владельцем, установленным на www-data
.
Если я выполняю жесткую перезагрузку, этот сценарий (и служба) не запускается автоматически.
Если я сбегу service flask-uwsgi start
вручную, работает нормально.
Я пробовал добавить setuid root
к этому сценарию, думая, что вам нужны привилегии root для создания каталогов в /var/run
, но это не помогло.
Мой синтаксис выглядит нормально:
init-checkconf /etc/init/flask-uwsgi.conf
File /etc/init/flask-uwsgi.conf: syntax ok
И файл журнала /var/log/upstart/flask-uwsgi.log
пусто.
Что мне не хватает?
Это была проблема с stop on
часть сценария выскочки.
Исправлено:
start on [2345]
stop on [!2345]
pre-start script
mkdir -p /var/run/flask-uwsgi
chown www-data:www-data /var/run/flask-uwsgi
end script
script
cd /var/flask-uwsgi
exec uwsgi --ini /etc/flask-uwsgi/flask-uwsgi.ini
end script