supervisor进程管理工具

Linux安装

yum install -y epel-release
yum install -y supervisor

启动服务:systemctl start supervisord.service

设置开启启动:systemctl enable supervisord

验证是否为开机启动:systemctl is-enabled supervisord

默认配置文件:/etc/supervisord.conf
进程管理配置文件放到:/etc/supervisord.d/目录下即可

配置文件中 /etc/supervisord.conf 注意include的文件夹以及后缀
[include]
files = supervisord.d/*.ini 

指定配置启动服务

supervisord -c /etc/supervisord.conf

[start|stop|restart][program-name|all]

重启:systemctl restart supervisord

编辑/etc/supervisord.conf 开启界面

[inet_http_server] ; HTTP服务器,提供web管理界面
port=0.0.0.0:9001  ; Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
username=user      ; 登录管理后台的用户名
password=123       ; 登录管理后台的密码

开启密码后:

supervisorctl -c /etc/supervisord.conf -u user -p 123 restart

启动相关进程

supervisorctl start swws #启动swws进程
supervisorctl restart swws #重启
supervisorctl stop swws #停止

supervisor命令说明

supervisorctl status      //查看所有进程的状态
supervisorctl -u user -p 123 status
supervisorctl stop <name>|all     //停止<name>或all停止所有supervisor进程
supervisorctl start <name>|all    //启动<name>或all启动所有supervisor进程,可用通配符*。es*表示es开头的supervisor进程
supervisorctl restart       //重启
supervisorctl update       //配置文件修改后使用该命令加载新的配置
supervisorctl reread	  //重载配置文件
supervisorctl reload     //重新启动配置中的所有程序
supervisorctl -u user -p 123 reload
supervisorctl shutdown  //关闭所有任务

安装邮件服务

yum install -y mailx
yum install -y sendmail
pip install superlance
启动服务:
systemctl restart sendmail.service

vim /etc/mail.rc #在末尾行插入参数

# 发件人邮箱
set from=595701048@qq.com
# smtp服务
set smtp=smtp.qq.com
# 用户名
set smtp-auth-user=595701048@qq.com
# 密码
set smtp-auth-password=XXXXXXXXXXXXX  
set ssl-verify=login

测试:echo '邮件内容'| /usr/bin/mail -s '邮件标题' 595701048@qq.com

触发事件集合
#PROCESS_STATE    进程状态发生改变
#PROCESS_STATE_STARTING  进程状态从其他状态转换为正在启动(Supervisord的配置项中有startsecs配置项, 是指程序启动时需要程序至少稳定运行x秒才认为程序运行正常,在这x秒中程序状态为正在启动)
#PROCESS_STATE_RUNNING   进程状态由正在启动转换为正在运行
#PROCESS_STATE_BACKOFF   进程状态由正在启动转换为失败
#PROCESS_STATE_STOPPING   进程状态由正在运行转换为正在停止
#PROCESS_STATE_EXITED   进程状态由正在运行转换为退出
#PROCESS_STATE_STOPPED   进程状态由正在停止转换为已经停止(exited和stopped的区别是exited是程序自行退出,而stopped为人为控制其退出)
#PROCESS_STATE_FATAL   进程状态由正在运行转换为失败
#PROCESS_STATE_UNKNOWN   未知的进程状态
#REMOTE_COMMUNICATION   使用Supervisord的RPC接口与Supervisord进行通信
#PROCESS_LOG   进程产生日志输出,包括标准输出和标准错误输出
#PROCESS_LOG_STDOUT   进程产生标准输出
#PROCESS_LOG_STDERR   进程产生标准错误输出
#PROCESS_COMMUNICATION   进程的日志输出包含 和
#PROCESS_COMMUNICATION_STDOUT   进程的标准输出包含 和
#PROCESS_COMMUNICATION_STDERR   进程的标准错误输出包含 和
#SUPERVISOR_STATE_CHANGE_RUNNING Supervisord  启动
#SUPERVISOR_STATE_CHANGE_STOPPING Supervisord  停止
#TICK_5   每隔5秒触发
#TICK_60   每隔60秒触发
#TICK_3600   每隔3600触发
#PROCESS_GROUP   Supervisord的进程组发生变化
#PROCESS_GROUP_ADDED   新增了Supervisord的进程组
#PROCESS_GROUP_REMOVED   删除了Supervisord的进程组


superlance的组件
superlance是一系列命令行工具的集合,其包括以下这些命令:

httpok 
通过定时对一个HTTP接口进行GET请求,根据请求是否成功来判定一个进程是否处于正常状态,如果不正常则对进程进行重启。

crashmail 
当一个进程意外退出时,发送邮件告警。

memmon 
当一个进程的内存占用超过了设定阈值时,发送邮件告警。

crashmailbatch 
类似于crashmail的告警,但是一段时间内的邮件将会被合成起来发送,以避免邮件轰炸。

fatalmailbatch 
当一个进程没有成功启动多次后会进入FATAL状态,此时发送邮件告警。与crashmailbatch一样会进行合成报警。

crashsms 
当一个进程意外退出时发送短信告警,这个短信也是通过email网关来发送的。

添加.ini文件

进入/etc/supervisord.d文件,添加.ini文件对进程配置

vim swws.ini
#项目名 (需要与文件名字一样)
[program:swws]
#脚本目录
directory=/home/wwwroot/swws
#脚本执行命令
command=php ws.php
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#是否在挂了之后重启,意外关闭后会重启,比如kill掉!
autorestart=true
#启动尝试次数
startretries=3
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=1
#脚本运行的用户身份 
user=root
#日志输出 
stderr_logfile=/home/logs/swws.log
stdout_logfile=/home/logs/swws.log
#把stderr重定向到stdout,默认 false
redirect_stderr = true
#stdout日志文件大小,默认 20MB
stdout_logfile_maxbytes=20
#stdout日志文件备份数
stdout_logfile_backups=20

#邮件通知
[eventlistener:swws_monitor]
command=crashmail -p swws -s "echo 'swws crashed!!'| /usr/bin/mail -s 'swws服务宕机' 595701048@qq.com"
events=PROCESS_STATE_EXITED
redirect_stderr=false

-p:指定一个主管process_name。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值