916 字
5 分钟

supervisor教程

supervisor教程#


supervisor教程

supervisor是一个统一管理批量化进程的工具,最主要用处是接口或者程序半夜挂了,能够自己重新启动。

官方网址:http://www.supervisord.org/

  1. 安装

使用pip和yum都可以安装。

  1. 配置管理

supervisor是通过两个配置文件对进程统一管理,格式是ini,注释是前面加分号。

主进程配置文件:/etc/supervisord.conf 就是supervisor本身的配置文件。

子进程配置文件:/etc/supervisord.d/ 该文件夹下是supervisor管理的各个进程所属的配置文件。

2.1 主进程配置文件

基本不用改,一般是反注释掉[inet_http_server]模块,可以通过web界面进行管理。以及配置[include]模块中的路径。

配置区域配置信息解释说明
[unix_http_server]file=/var/run/supervisor/supervisor.sock一定要配置对,sockt套接字,该套接字是supervisor客户端和服务端进行连接的桥梁。
chmod=0700该套接字的权限,表示用户拥有该套接字的读写该权限,组和其他都没有权限。
chown=nobody用户和组设定, 格式:uid
[inet_http_server]port=127.0.0.1:9001Web管理界面网址
username=user登录名
password=123登录密码
supervisordlogfile=/tmp/supervisord.logsupervisor运行的日志文件
logfile_maxbytes=50MB日志文件最大,超出会rotate,设置为0,表示不限大小。
logfile_backups=10日志文件备份数量,0表示不备份。
loglevel=info日志级别
pidfile=/tmp/supervisord.pidsupervisor进程号的保存地址。
nodaemon=false默认后台启动。
minfds=1024可以打开的文件描述符的最小值,也及时文件的索引最大值。一般就是调用子进程的配置文件数量。
minprocs=200能管理的进程数量
supervisorctl(二选一)serverutl=unix:///tmp/supervisor.sock通过unix socket连接supervisord,路径要和file一样。理解就是能通过服务器的命令行supervisorctl进行管理
serverurl=http://127.0.0.1:9001在本机管理另一台服务器的supervisor服务,例如通过supervisorctl 10.0.0.1 —http 10.0.0.2 进行管理
[program]管理进程的参数 ,格式 program:项目名称,这个区域在子进程文件中替代。
command=/opt/apache-tomcat/bin/catalina.sh run执行命令
autostart=truesupervisord启动的时候也自动启动
startsecs=10启动10秒后还是处于正常运行状态,表示该服务已经启动了。有异常就退出
autorestart=true[unexpected, true, false], unexpected,如果是Kill -9的话,表示是异常结束的,会重新启动。supervisorctl stop 表示正常结束,不重新启动。一般部署服务都是用true。
startetries=3重启次数。失败三次之后
user=root默认用户启动
priority=999启动先后顺序编码,值小的先启动。
redirect_stderr=true错误和正常信息都重定向到stdout
stdout_logfile_maxbytes=20MBstdout 日志大小
stdout_logfile_backups=20stdout日志文件备份数量,默认10
stdout_logfile=/otp.apache-tomcat/logs/catalina.outstdout日志文件保存路径,需要保证路径存在,不存在手动创建
[include]files=/etc/supervisord.d/*.ini可以不用像[program]区域一样配置,读取子进程配置文件就可以。

2.2 子进程配置文件

  1. 启动和管理supervisor
命令作用说明
supervisord -c /etc/supervisord.conf读取主进程配置文件,并启动
systemctl start supervisord.service编写supervisor.service文件启动supervisor,并加载默认配置文件看,默认是/etc/supervisord.conf
systemctl enable supervisord.service开机就启动
命令作用说明
supervisorctl status查看所有进程的状态
supervisorctl stop all / supervisorctl stop nginx停止所有进程/停止nginx进程
supervisorctl start all / supervisorctl start nginx启动所有进程/启动nginx进程
supervisorctl restart all / supervisorctl restart nginx启动所有进程/启动nginx进程重新启动所有进程/重新启动nginx进程
supervisorctl update重新加载新的配置文件,并启动新加入的进程。
supervisorctl relaod配置文件修改后,主进程不变,重新启动所有的子进程
  1. 附录

配置systemctl的supervisord.service文件

/home/test/supervisord-start.sh文件

/home/test/supervisord-restart.sh

/home/test/supervisord-stop.sh

supervisor教程
https://blog.gspider.com/posts/supervisor教程/
作者
bgspider
发布于
2025-12-17
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-12-17,距今已过 22 天

部分内容可能已过时

目录