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

202504021459535143881309.png

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.sulao.cn/post/1013

相关推荐