Скрипт 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
Другие вопросы по тегам