🤟致敬读者
- 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉
📘博主相关
文章目录
- 关于supervisord-win的配置和使用
-
- [1. 介绍](#1. 介绍)
-
- [1.1 主要功能](#1.1 主要功能)
- [1.2 核心优势](#1.2 核心优势)
- [1.3 配置示例](#1.3 配置示例)
- [2. 与Python的兼容性](#2. 与Python的兼容性)
- [3. 下载安装](#3. 下载安装)
- [4. 配置](#4. 配置)
- [5. 使用](#5. 使用)
- [6. 拓展](#6. 拓展)
-
- [6.1 重启策略配置](#6.1 重启策略配置)
- [6.2 加载配置文件](#6.2 加载配置文件)
- [6.3 监控和管理](#6.3 监控和管理)
📃文章前言
- 🔷文章均为学习工作中整理的笔记。
- 🔶如有错误请指正,共同学习进步。

关于supervisord-win的配置和使用
1. 介绍
Supervisord是一个进程控制系统,具有以下几个重要作用:
1.1 主要功能
-
进程监控 :
supervisord持续监控应用程序和进程,跟踪它们的运行状态 -
自动重启 :当配置了
autorestart=true时,它会在程序崩溃或意外退出时自动重启程序,确保服务的高可用性 -
启动管理 :通过
autostart=true配置,当supervisord服务启动时自动启动相关程序 -
进程控制 :通过
supervisorctl命令提供集中化的进程控制,支持启动、停止和重启操作
1.2 核心优势
- 可靠性:通过自动从故障中恢复来确保关键应用持续运行
- 集中管理:可以从单一界面管理多个进程
- 日志管理 :通过
stderr_logfile和stdout_logfile配置捕获和管理应用程序的标准输出和错误日志 - 用户上下文控制 :使用
user参数在指定的用户账户下运行进程
1.3 配置示例
正如你在配置文件中看到的,supervisord使用以下设置:
autorestart=true启用故障时的自动重启autostart=true启用自动启动- 日志文件路径来捕获应用输出
- 用户和目录配置确保正确的执行环境
这使得supervisord成为生产环境中确保应用正常运行和自动恢复的关键工具。
2. 与Python的兼容性
在使用前需要注意,supervisord的版本与python的版本兼容问题
正常python3.10及之前的版本都没问题,当使用3.10之后的版本时,可能会出现兼容问题
建议python版本3.10及之前的版本,当必须使用3.10之后的版本时,可考虑pm2的使用。
关于python和supervisord的版本兼容问题参考文章:关于Python版本与supervisor版本的兼容性
3. 下载安装
首先需要安装库
bash
pip install supervisor-win
若需离线安装可参考文章:Supervisord-Win 离线安装指南
安装完成后,可进行配置
4. 配置
supervisord的配置主要是在conf配置文件中
创建一个supervisord.conf文件,在其中配置如下参数
举例
conf
# 程序名称
[program:supervisor_demo]
# 执行程序的入口文件
command=python.exe main.py
# 程序的工作目录
directory=E:/Python-p/supervisor_demo
# 当supervisord启动时自动启动该程序
autostart=true
# 当程序意外退出时自动重启
autorestart=true
# 放弃前的重试次数
startretries=3
# 启动超时时间
startsecs=5
# stderrhandler和stdout_logfile用于分别记录错误日志和标准输出日志
stderr_logfile=log/supervisor_demo.err.log
stdout_logfile=log/supervisor_demo.out.log
# 日志文件大小
stdout_logfile_maxbytes=10MB
# 日志文件保存个数
stdout_logfile_backups=10
5. 使用
可使用如下命令进行启动当前配置,并保持一致运行程序
(supervisord的好处就在于不用配置flask服务或者循环就可以让程序一直跑)
运行命令(文件当前路径下运行)
bash
supervisord -c supervisord.conf
任意位置运行命令时需加上conf文件完整路径
如
bash
supervisord -c E:\Python-p\supervisor_demo\supervisord.conf
6. 拓展
6.1 重启策略配置
supervisor提供了多种重启策略:
ini
[program:supervisor_demo]
; ... 其他配置 ...
autorestart=true ; 总是重启,无论退出状态如何
; 或者
autorestart=unexpected ; 只有在意外退出时才重启
startretries=3 ; 放弃前的重试次数
exitcodes=0,2 ; 预期的退出码(不会触发重启)
6.2 加载配置文件
创建配置文件后,需要执行以下命令:
bash
# 重新读取supervisor配置
sudo supervisorctl reread
# 更新supervisor配置
sudo supervisorctl update
# 启动您的程序
sudo supervisorctl start supervisor_demo
6.3 监控和管理
您可以使用以下命令监控和管理您的程序:
bash
# 查看状态
sudo supervisorctl status
# 停止程序
sudo supervisorctl stop supervisor_demo
# 重启程序
sudo su

📜文末寄语
- 🟠关注我,解锁更多优质内容
- 🟡技术前沿 | 实战干货 | 疑难解答,持续更新中
- 🟢加入《全栈知识库》,与各领域开发者共创技术盛宴
- 🔵进入《专属社群》,技术路上结伴同行,共同成长
- 🟣点击下方名片,获取更多精彩内容👇