linux下使用supervisor发布基于gunicorn的flask应用
- 2025-04-02 14:49:43
- 工具
- 74
- shevechco
Supervisor 是用 Python 开发的一套通用的进程管理程序,能监控进程的状态,在进程异常退出时能自动重启,supervisor依赖python,因为我们是python项目,所以环境里面已经包含了python,我之前记录过一个supervisor,那个比较久远了,我们后面就以这个笔记为主。
我们首先安装supervisor
apt install supervisor
然后可以将自己的博客创建一个配置。
cat /etc/supervisor/conf.d/blog.conf
[program:blog]
directory=/data/blog
command=/usr/local/bin/gunicorn -c gunicorn_conf.py manager:app
autostart=true
autorestart=true
stdout_logfile=/data/blog/logs/gunicorn.log
stderr_logfile=/data/blog/logs/gunicorn.error
然后在我们博客目录下创建gunicorn_conf.py配置文件如下,其他配置可以直接查看我之前的笔记:https://sulao.cn/post/319
import multiprocessing
bind = '0.0.0.0:9090'
workers = multiprocessing.cpu_count() + 1
worker_class = 'eventlet'
worker_connections = 2000
pidfile = './gunicorn.pid'
daemon = 'false'
timeout = 60
loglevel = 'info'
注意上述配置,daemon设置为false,这样就由supervisor接管。
然后我们就可以可以更新supervisor配置并启动配置
supervisorctl reload
#设置supervisor开机启动
systemctl enable supervisor
接下来简单介绍下supervisor简单命令
supervisorctl status # 查看所有 supervisor 相关的进程的状态
supervisorctl start app_name # 启动 app_name 服务(启动 xx 进程)
supervisorctl stop app_name # 停止 app_name 服务
supervisorctl restart app_name # 重启 app_name 服务
supervisorctl update # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
supervisorctl reload # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
supervisorctl shutdown # 关闭所有任务
supervisorctl stop all # 停止全部进程
我们也可以直接输入supervisorctl命令进入管理模式
supervisorctl
内容版权声明:除非注明,否则皆为本站原创文章。