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服务已自动启动
posted @ 2020-01-19 11:05  A学无止境A  阅读(165)  评论(0编辑  收藏  举报