关于supervisor-win的安装、配置和使用

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关


文章目录

  • 关于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_logfilestdout_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


📜文末寄语

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

相关推荐
喵手2 小时前
Python爬虫实战:地图 POI + 行政区反查实战 - 商圈热力数据准备完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·地区poi·行政区反查·商圈热力数据采集
熊猫_豆豆2 小时前
YOLOP车道检测
人工智能·python·算法
nimadan122 小时前
**热门短剧小说扫榜工具2025推荐,精准捕捉爆款趋势与流量
人工智能·python
默默前行的虫虫2 小时前
MQTT.fx实际操作
python
消失的旧时光-19432 小时前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑3 小时前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
YMWM_3 小时前
python3继承使用
开发语言·python
JMchen1233 小时前
AI编程与软件工程的学科融合:构建新一代智能驱动开发方法学
驱动开发·python·软件工程·ai编程
Trouvaille ~3 小时前
【Linux】TCP Socket编程实战(一):API详解与单连接Echo Server
linux·运维·服务器·网络·c++·tcp/ip·socket
亓才孓3 小时前
[Class类的应用]反射的理解
开发语言·python