Supervisor安装与使用

Supervisor 介绍

Supervisor 是一个用 Python 编写的进程管理工具,它可以用于监控和控制类 UNIX 操作系统上的多个进程。它是一个客户端/服务器系统,其中 Supervisor 的服务器端称为 supervisord,负责启动管理的子进程、响应客户端命令、重启崩溃或退出的子进程、记录子进程的 stdout 和 stderr 输出,以及处理子进程生命周期中的事件。客户端则称为 supervisorctl,它提供了一个类 shell 的接口,允许用户通过命令行与 supervisord 服务器进程通信,以控制子进程的状态、启动和停止进程,并获取正在运行的进程列表。

Supervisor官网地址:http://supervisord.org/

Supervisor安装

# ubuntu
apt-get install supervisor

# centos
yum install epel-release -y
yum install supervisor -y

配置 Supervisor服务

Supervisor可以在/etc/supervisord.conf进行配置,根据Supervisor的systemd启动文件查看使用的配置文件路径即可。

cat /etc/supervisord.conf
[unix_http_server]
file=/var/run/supervisor.sock
;chmod=0700
;chown=nobody:nogroup

;[inet_http_server]
;port=127.0.0.1:9001
;username=user
;password=123

[supervisord]
logfile=/var/log/supervisord/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/var/run/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
;serverurl=http://127.0.0.1:9001

[include]
files = /etc/supervisord.d/*.conf

创建日志目录文件:

mkdir /var/log/supervisord
touch /var/log/supervisord/supervisord.log

启动Supervisor:

systemctl start supervisord.service
systemctl enable  supervisord.service
systemctl status  supervisord.service

配置 Supervisor 的子任务

子任务配置路径查看Supervisor配置文件的include模块即可,这里是存放在/etc/supervisord.d,在该目录下,可以创建多个配置文件指示Supervisor如何监视进程

cat /etc/supervisord.d/nginx.conf
[program:nginx]
command=/usr/sbin/nginx -g 'daemon off;'
directory=/etc/nginx
autostart=true
autorestart=true
redirect_stderr=true
priority=10
stdout_logfile=/var/log/supervisord/nginx.log   #这里的文件需要存在

创建子任务的日志文件:

touch /var/log/supervisord/nginx.log

重载supervisor:

supervisorctl reload # 整个 Supervisor 服务,所有进程先终止再重启	,影响较大,不建议使用
supervisorctl update # 仅配置有变化的程序	
supervisorctl status # 查看管理的进程
nginx                            RUNNING   pid 30436, uptime 0:02:48
killall nginx  # 杀掉所有的 nginx 进程,可以看到会自动启动nginx,说明守护进程配置成功
posted @ 2025-08-11 18:25  阿峰博客站  阅读(73)  评论(0)    收藏  举报