supervisor入门应用

概念

Supervisor 是一个类UNIX操作系统上的进程管理与监控工具,可以将命令行进程变成Deamon进程,并监控其状态,在异常退出时可以自动启动进程。更为详细的介绍参见官网http://supervisord.org/

Supervisor组件:我们只介绍两个重要的组件, supervisordsupervisorctl

  1. supervisord 主进程,它是负责管理进程的Server,它根据配置我们的配置文件通过fork/exec 的方式来创建子应用程序的子进程,管理其整个生命周期,对crash子进程进行重启,子进程变化发送事件通知等。

  2. supervisorctl 客户端命令行工具,我们通过它来管理我们自己的应用进程 stop start restart update reload 等 ,这个命令行工具通过UNIX socket 或者TCP来和我们的supervisord进行通信。

安装

# 我们通过yum安装,先按照epel源 
yum install -y epel-release 

# 安装supervisor 
yum install -y supervisor 

安装位置默认在

/usr/bin/supervisorctl

配置文件默认在下面目录

cd /etc/supervisord.d

主配置文件修改

[root@mypc01 ~]# vim /etc/supervisord.conf

注意最后面有一行,表示引入副配置文件

[include] ;分离的配置文件,我们可以总是将我们应用的配置文件放到单独的目录文件下管理, 这样配置清晰,下面是配置的分离配置文件的路径,supervisord会加载我们配置到对于文件加 下的文件

files = /etc/supervisord.d/*.conf ; 匹配 /etc/supervisord.d/ 下所有以.conf 结尾的文件

服务项管理

# 创建pid文件
touch /var/run/supervisor/supervisord.pid 
# 开机启动 
systemctl enable supervisord 
# 启动supervisord 
systemctl start supervisord 
# 查看启动状态 
systemctl status supervisord 
# 查看tcp端口是否在监听中 
netstat -antp |grep 9001 
# 如果看到9001 说明supervisord 已经正常工作

副配置文件

比如,利用supervisior启动一个shell脚本.

# 创建一个配置文件.以conf结尾
#一般改下前两行就ok了
[root@mypc01 ~]# vim /etc/supervisord.d/xx.conf

配置内容为

[program:access-flume] ; 自定义一个名称
command=/opt/apps/collect-app/scripts/xx.sh
stderr_logfile=/var/log/supervisor/access-flume.err ;错误日志文件
stdout_logfile=/var/log/supervisor/access-flume.log ;标准输出日志文件,我们通过该文件查看运行日志
stdout_logfile_maxbytes=10MB ; 标准输出日志文件多大滚动一次
stdout_logfile_backups=10 ; 标准输出日志文件最多备份多少个
user=root ; 以什么用户启动
autostart=true ; 是否在supervisord启动时,直接就启动应用
autorestart=true ; crash 后是否自动重启
startsecs=10 ;应用进程启动多少秒之后,此时状态如果是running状态,就认为是成功
startretries=3 ; 当进程启动失败后,最大尝试启动的次数, 如果超过指定次数,应用会被标记为Fail状态
stopasgroup=true ; 是否停止由应用本身创建的子进程,此选项接受的停止信号是stop信号
killasgroup=true ; 是否停止由应用本身创建的子进程,此选项接受的停止信号是SIGKILL信号
redirect_stderr=false ; 如果是true,stderr的日志会被写入stdout日志文件中

启动

# 读取配置文件 
supervisorctl reread 
# 更新启动
supervisorctl update access-flume
# 查看启动状态
supervisorctl status access-flume
# 如果想停止
supervisorctl stop access-flume
# 如果想再次启动 
supervisorctl start access-flume
# 注意一旦你修改了配置文件内容,一定要先reread,然后 update 就可以了

其他进程或者脚本类似的都可以交给supervisor来管理.

关闭supervisor

总结

一般 配置下command和program这两个参数就够了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值