Назад | Перейти на главную страницу

Сценарий 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 к этому сценарию, думая, что вам нужны привилегии 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