一、功能介绍
supervisor是一个进程管理工具,supervisor是用Python开发的一套通用的进程管理程序,
能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
supervisor:要安装的软件的名称。
supervisord:装好supervisor软件后,supervisord用于启动supervisor服务。
supervisorctl:用于管理supervisor配置文件中program。
二、yum安装supervisor
2.1、查看yum源supervisor版本信息
[root@ecs ~]# yum --showduplicates list supervisor
2.1、安装命令
yum install -y epel-release
yum install -y supervisor
systemctl enable supervisord # 开机自启动
systemctl is-enabled supervisord # 检测开启启动是否成功
systemctl start supervisord # 启动supervisord服务
systemctl status supervisord # 查看supervisord服务状态
# 查看是否存在supervisord进程
ps -ef | grep supervisord
### 其他命令
systemctl stop supervisord # 停止supervisord服务状态
systemctl restart supervisord # 重启supervisord服务
2.2、配置命令和测试
vim /etc/supervisord.conf
#去掉前面的; 开启http页面管理台, 配置访问ip和端口,用户名和密码,0.0.0.0表示任意ip可以访问
[inet_http_server] ; inet (TCP) server disabled by default
port=0.0.0.0:9001 ; (ip_address:port specifier, *:port for all iface)
username=user_name ; (default is no username (open server))
password=xxxxx ; (default is no password (open server))
;文件结尾,配置文件路径变更,默认为ini,但个人习惯.conf, 可不改
[include]
;files = supervisord.d/*.ini
files = supervisord.d/*.conf
后续创建守护进程默认在/etc/supervisord.d/文件夹下,创建即可
2.3、创建守护进程
vim /data/bin/testecho.sh
#!/bin/bash
while true
do
DATE=`date +%Y%m%d-%H-%M-%S`
#写上自已的命令
echo "hello world $DATE \n\n" >> /home/testecho.log
#睡眠10秒
sleep 2
done
chmod +x /data/bin/testecho.sh
#创建日志目录
mkdir -p /var/log/supervisor/runtime
#创建测试守护进程配置
vim /etc/supervisord.d/testecho.conf
[program:testecho]
directory = /data/bin/ ;启动目录
command = /data/bin/testecho.sh ;启动命令
autostart = true ;在supervisord启动的时候也启动
startsecs = 5 ;启动5秒后没有异常退出,就当作已经正常启动了
autorestart = true ;程序异常退出后自动重启
startretries = 3 ;启动失败自动重试次数,默认是3
user = root ;哪个用户启动
redirect_stderr = true ;把stderr重定向到stdout,默认false
stdout_logfile_maxbytes = 20MB ;stdout日志文件大小,默认50MB
stdout_logfile_backups = 20 ;stdout日志文件备份数
stdout_logfile =/var/log/supervisor/runtime/testecho.log ;stdout日志文件
2.3、重启配置查看效果
#查看脚本输入的文本
tail -f /home/testecho.log
netstat -tunlp
三、登录web管理页面,查看日志和管理守护
http://服务器外网ip地址:9001
(ip和端口根据自己配置来),输入上面配置的用户名和密码,登录即可