我跟着这使用 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