Supervisor的使用

本文介绍Supervisor,一种用于Linux/Unix系统的进程管理工具,可监控、启动和停止进程,并自动重启意外终止的进程。文章详细讲解了安装方法、配置选项、使用命令及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、简介

  Supervisor是Linux/Unix系统下的一个进程管理工具。可以监控进程,启动、停止进程,重定向进程的log。可以对多个进程可以批量管理。当一个进程被意外杀死后,可以自动重启。

        可以提供web界面管理进程。(开启inet_http_server,不推荐使用)

        python语言开发。

 

2、如何安装

方法1:yum install supervisor

方法2:源码安装

方法3:如果安装了python

easy_install supervisor

echo_supervisord_conf >/你的路径/supervisord.conf

 

3、如何配置和使用

安装好后在/etc/会生成一个supervisord.conf文件及一个supervisord.d文件目录

配置sypervisord.conf

demo:(仅列出常用配置)

[unix_http_server]
file=/home/vibasic/supervisor/supervisor.sock   ;UNIX socket 文件,supervisorctl 会使用


;[inet_http_server]         ;HTTP服务器,提供web管理界面,不建议使用
;port=127.0.0.1:9001        ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性,如果不限定IP,可以配置*:9001
;username=user              ;登录管理后台的用户名
;password=123               ;登录管理后台的密码
 
[supervisord]
logfile=/home/vibasic/supervisor/supervisord.log ;  日志文件,
logfile_maxbytes=50MB        ;日志文件大小,超出会rotate,如果设成0,表示不限制大小
logfile_backups=10           ;日志文件保留备份数量默认10,设为0表示不备份
loglevel=info                ;日志级别,默认info,其它: debug,warn,trace
pidfile=/home/vibasic/supervisor/supervisord.pid ;   pid 文件
nodaemon=false               ;是否在前台启动,默认是false,即以 daemon 的方式启动
minfds=1024                  ;可以打开的文件描述符的最小值,默认 1024
minprocs=200                 ;可以打开的进程数的最小值,默认 200

childlogdir=/home/vibasic/supervisor/log    ; ('AUTO' child log dir, default $TEMP)
 
[supervisorctl]
serverurl=unix:///home/vibasic/supervisor/supervisor.sock ;  通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致,注意格式:unix:// + 路径

; [program:xxx]是被管理的进程配置参数,xxx是进程的名称,必须唯一
[program:test_vibasic]
command=/home/vibasic/bin/python /home/vibasic/test_vibasic.py    ; 程序启动命令

directory=/home/vibasic/bin/    ;程序运行的目录
autostart=true       ; 在supervisord启动的时候也自动启动
startsecs=5        ; 启动5秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=3       ; 启动失败自动重试次数,默认是3
user=vibasic       ; 用哪个用户启动进程,默认是root
stdout_logfile_maxbytes=20MB  ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20   ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/home/vibasic/supervisor/logs/test.out
stderr_logfile_maxbytes=50MB   ;   stderr 日志文件大小,默认50MB
stderr_logfile_backups=10    ;   stderr 日志文件备份数,默认是10

stderr_logfile=/home/vibasic/supervisor/logs/test.err

;包含其它配置文件
[include]
files =/etc/supervisor.d/*.ini    ;可以指定一个或多个以.ini结束的配置文件,路径可以换,后缀名也可以定制


启动:

你的路径/supervisord -c 你的路径/supervisord.conf 

查看:

ps aux | grep supervisord

你的路径/supervisorctl status    查看所有的管理的进程的状态

          test_vibasic                       RUNNING   pid 1337, uptime 0:46:44

你的路径/supervisorctl stop test_vibasic   停止你的程序

         test_vibasic: stopped

你的路径/supervisorctl start test_vibasic             ;启动你的程序

你的路径/supervisorctl restart test_vibaisc           ; 重启你的程序

你的路径/supervisorctl update                             ; 配置文件修改后可以使用该命令加载新的配置

...

其他可以参考官网。

 

测试:

ps aux | grep test_vibasic

kill -9 test_vibasic  (当前你要运行的程序)

 

4、注意事项

(1)不建议使用配置默认的log地址路径,如/tmp路径

(2)不建议使用配置默认的sock 通信路径,如/tmp;

(3)不要使用kill -9的方式杀死supervisord进程;

(4)一般大公司用不到,OP都帮监控好了,但如果自运维的机器,通过此方法可以提升程序提供的服务稳定性。并辅以日志监控,做到相应的短信和邮件报警。

 

5、参考文献

(1)http://supervisord.org/

(2)配置说明参考:http://supervisord.org/configuration.html#program-x-section-example

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值