在我们运行或者调试uwsgi的时候:
uwsgi --socket 0.0.0.0:5000 --protocol=http -w myproject:app
uwsgi --ini myproject.ini
如果Ctrl+C
或者退出ssh链接,都会导致uwsgin进程关闭。
这时,我们需要进程管理软件管理 uwsgi 进程的运行了。Ubuntu 自带的 systemd 是最简单的方法,可以将我们的项目变为系统服务。首先创建 myproject.service 文件 sudo vim /etc/systemd/system/myproject.service
[Unit]
Description=uWSGI instance to serve myproject
After=network.target
[Service]
[Unit]
Description=uWSGI instance to serve myproject
After=network.target
[Service]
WorkingDirectory=/root/PythonWorkSpace/myproject
ExecStart=/usr/bin/uwsgi --ini /root/PythonWorkSpace/myproject/uwsgi.ini
ExecStop=/usr/bin/uwsgi --stop /root/PythonWorkSpace/myproject/uwsgi.pid
ExecReload=/usr/bin/uwsgi --reload /root/PythonWorkSpace/myproject/uwsgi.pid
[Install]
WantedBy=multi-user.target
接下来可以愉快的启动了(myproject 就是 myproject.service 文件名去掉扩展名):
systemctl start myproject.service
systemctl reload myproject.service
systemctl stop myproject.service
uwsgi
的路径必须是自己编译是的venv
环境下的uwsgi
,要不然启动之后找不到Flask
项目中的依赖包。参考: 管理uWSGI服务器