Upstart 脚本在启动时不起作用 - 只能手动

Upstart 脚本在启动时不起作用 - 只能手动

我跟着使用 nginx + uwsgi 设置 Flask 的教程。

我创建了一个 upstart 脚本/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是空的。

我错过了什么?

答案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

相关内容