Supervisor 教程,管理和守护多个进程

1. Supervisor 简介

Supervisor 是一个用 Python 编写的客户端 / 服务器系统,用于在类 Unix 操作系统上监控和控制多个进程。它为管理和守护进程提供了强大且便捷的解决方案,在生产环境中广泛应用于保证服务的高可用性和稳定性。

1.1. 主要特点

  • 进程监控:Supervisor 可以实时监控其所管理进程的状态,如运行、停止、异常退出等。一旦进程出现异常,它能够根据预设的规则采取相应的措施,例如自动重启进程,从而减少人工干预,提高系统的可靠性。
  • 进程管理:可以方便地启动、停止和重启所管理的进程。通过简单的命令或配置文件,就能对多个进程进行集中管理,大大提高了管理效率。
  • 日志管理:Supervisor 可以捕获和管理进程的标准输出(stdout)和标准错误输出(stderr),将日志存储到指定的文件中,便于后续的故障排查和系统审计。
  • 配置灵活:通过配置文件,可以对每个进程进行详细的配置,包括启动命令、工作目录、环境变量、重启策略等,满足不同应用场景的需求。

1.2. 基本组件

  • supervisord:守护进程,负责读取配置文件,启动、监控和管理所配置的进程。它在后台持续运行,是整个 Supervisor 系统的核心。
  • supervisorctl:命令行客户端工具,用于与 supervisord 进行交互。可以使用它来启动、停止、重启进程,查看进程状态,以及对 supervisord 进行配置重载等操作。
  • Web 界面(可选):Supervisor 还提供了一个可选的 Web 界面,通过浏览器可以方便地对进程进行管理和监控,适合非技术人员进行操作。

2. supervisor安装

2.1. supervisor3.4.0安装

#yum默认安装的是3.4.x
yum install -y epel-release
yum -y install supervisor

#1 查看安装的版本
]# supervisord --version
3.4.0

2.2. supervisor4.2.0安装

#1. 在 CentOS 7.9 上安装 Python 3 和 pip3,然后通过 pip3 安装 Supervisor 4.2.0 的详细步骤如下:
yum install -y epel-release
yum install -y python3

# 检查 Python 3 是否安装成功
python3 --version

# 安装 pip3(Python 3 的包管理工具)
yum install -y python3-pip

# 检查 pip3 是否安装成功
pip3 --version

#2. 使用 pip3 安装 Supervisor 4.2.0
pip3 install supervisor==4.2.0

# 验证 Supervisor 是否安装成功
supervisord --version

3. 配置 Supervisor
安装完成后,你需要创建一个 supervisord.conf 配置文件来定义 Supervisor 将要管理的进程。
你可以通过运行以下命令来生成一个默认的配置文件,并根据需要进行编辑:
echo_supervisord_conf > /etc/supervisord.conf

#4. 添加systemd文件,开机自启动 Supervisor
vim /etc/systemd/system/supervisord.service
[Unit]
Description=Supervisor process control system
Documentation=http://supervisord.org
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=5s
PIDFile=/var/run/supervisord.pid

[Install]
WantedBy=multi-user.target

#5 使systemd文件生效,设置开机自启动,启动服务
systemctl daemon-reload

3. supervisord服务启动管理

#1.服务启动管理
systemctl enable supervisord    #开机自启动
systemctl start supervisord     #启动服务
systemctl stop supervisord      #停止服务
systemctl restart supervisord   #重启服务

4. supervisor配置文件

supervisor分为主配置文件和子配置文件,supervisor服务器相关的配置写入supervisord.conf中,监控的各个进程的配置,按照进程名存在 supervisord.d/ 目录下。(这个可以在supervisord.conf中的[include]部分下配置)

4.1. 主配置文件

主配置文件:/etc/supervisord.conf

查看supervisord.conf最后的[include]配置,若不同请修改,以支持子配置文件,而不用改动主配置文件。

vim supervisord.conf 
[include]
files = supervisord.d/*.ini

supervisord.conf 配置解析,以下配置为标准配置

[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; UNIX socket 文件,supervisorctl 会使用
;chmod=0700                 ; socket 文件的 mode,默认是 0700
;chown=nobody:nogroup       ; socket 文件的 owner,格式: uid:gid
 
;[inet_http_server]         ; HTTP 服务器,提供 web 管理界面
;port=127.0.0.1:9001        ; Web 管理后台运行的 IP 和端口,如果开放到公网,需要注意安全性
;username=user              ; 登录管理后台的用户名
;password=123               ; 登录管理后台的密码
 
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; 日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值