supervisor安装的实例+管理tomcat
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
在centos7上安装supervisor,直接用yum进行安装,若是不是的话,或者是其他,请准备好python2.4以上的版本环境
注意:
1. supervisord:supervisor的服务器端部分,用于supervisor启动。
2. supervisorctl:启动supervisor的命令行窗口,在该命令行中可执行start、stop、status、reload等操作。
3. 每次修改配置文件后需要进入supervisorctl,执行reload,改动部分才会生效。
1. 在centos7系统上进行安装
2. 开启supervisor,设置supervisor的自动启动,查看supervisor
[root@ localhost ~]# systemctl start supervisord
[root@ localhost ~]# systemctl enable supervisord
[root@ localhost ~]# systemctl status supervisord
3. 修改配置文件 /etc/supervisord.conf,进入配置文件,把所标注处,给去了注释
[inet_http_server] ; inet (TCP) server disabled by default http服务器,提供web管理界面
port=0.0.0.0:9001 ; (ip_address:port specifier, *:port for all iface) web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
username=root ; (default is no username (open server)) 登录管理后台的用户名
password=123456 ; (default is no password (open server)) 登录管理后台的密码
或者是:
4. 重新加载配置文件,开启supervisor的默认端口9001【这一步可以设置防火也可不设置】
supervisorctl reload
firewall-cmd --zone=public --add-port=9001/tcp --permanent 【--zone 作用域,--add-port=80/tcp 添加端口,格式为:端口/通讯协议,--permanent 永久生效,每次参数后失效】
firewall-cmd --reload 【重新加载】
5. 访问页面 (因为我们这里给他设置了用户和密码所以要进行登录)
6. 再次进入配置文件,/etc/supervisord.conf,的最后一行,你可以改成以 (.conf来做成后缀)【同样如果你在安装supervisor的时候帮supervisor创建了一个文件目录你可以在supervisor的配置文件中的最后一行写上你的详细配置文件目录】
7. supervisor管理tomcat,先安装上tomcat并且开启tomcat和查看页面,查看完页面之后记得把所有的tomcat进程停止掉,因为你使用supervisor所以当你进入supervisorctl命令行中的时候会有start命令你需要在命令行中执行。{切记:supervisor的进程只能由supervisor来开启}
8. 把tomcat开启之后进入/etc/supervisord.d/conf.d编写以.ini结尾的tomcat脚本vim /etc/supervisord.d/conf.d/tomcat.ini
[program:tomcat]
command=/root/apache-tomcat-8.5.35/bin/catalina.sh run
9. 重新启动一下supervisor,再进入supervisor的命令行模式(supervisorctl),要执行reload才能有反应,使用exit退出来
10. 进行重新启动supervisor,在第二张截图中我们会看到tomcat进程的状态,到这里supervisor的命令行管理tomcat完事儿了。
[root@ localhost system]# systemctl daemon-reload
[root@ localhost system]# systemctl enable supervisord.service
[root@ localhost system]# systemctl start supervisord
[root@ localhost system]# systemctl status supervisord
11. 我们再在web端上面看看,是否可以执行成功