Скрипт Upstart не работает при загрузке - только вручную
Я следовал этому руководству по настройке 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
к этому сценарию, думая, что вам нужны права суперпользователя для создания каталогов в /var/run
, но это не помогло.
Мой синтаксис выглядит нормально:
init-checkconf /etc/init/flask-uwsgi.conf
File /etc/init/flask-uwsgi.conf: syntax ok
И, файл журнала /var/log/upstart/flask-uwsgi.log
пустой.
Что мне не хватает?
1 ответ
Это была проблема с 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