Linux----------进程管理工具supervisor
一、supervisor介绍
Supervisor简单介绍
Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启。Supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
在使用Supervisor时,可以随时使用Supervisor的客户端Supervisorctl来管理进程,查看状态,重启,停止等。
优点:比脚本监测节约大量系统资源,服务挂掉拉起迅速
缺点:业务异常导致服务宕机,可能导致服务起不开
二、部署及使用supervisor
安装supervisor
[root@localhost ~]# yum -y install supervisor
[root@localhost ~]# systemctl enable supervisord.service
[root@localhost ~]# systemctl start supervisord.service
防火墙设置
[root@localhost ~]# firewall-cmd --permanent --add-port=9001/tcp --add-port=80/tcp
[root@localhost ~]# firewall-cmd --reload
修改配置文件
[root@localhost ~]# vim /etc/supervisord.conf
修改以下内容
[inet_http_server]
port=0.0.0.0:9001 #web管理页面端口
username=admin #web管理页面用户名
password=123456 #web管理页面密码
文件末属添加监控的服务
[program:httpd]
command=/usr/sbin/httpd -D FOREGROUND
autostart=true
autorestart=true
startsecs=3
user=root
[program:nginx]
command=/usr/local/nginx/sbin/nginx -g 'daemon off;'
autostart=true
autorestart=true
redirect_stderr=true
priority=10
stdout_logfile=/data/logs/supervisord/nginx.log
[program:tomcat]
command=/usr/local/tomcat/bin/catalina.sh run
environment=JAVA_HOME="/usr/local/jdk1.8",JAVA_BIN="/usr/local/jdk1.8/bin"
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
[program:mysql]
command=/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
priority=1
numprocs=1
autostart=true
autorestart=true
exitcodes=0
stopsignal=KILL
stopwaitsecs=10
redirect_stderr=true
stdout_logfile=/data/logs/supervisord/mysql.log
[root@localhost ~]# systemctl stop httpd.service
[root@localhost ~]# supervisorctl reload
浏览器输入http://主机IP:9001可以看到httpd服务已自动启动