操作目的:用supervisor工具管理tomcat服务

配置环境,安装服务,以及多实例

脚本编辑:

前提 机器的opt目录下必须有jdk-8u131-linux-x64_.rpm 以及apache-tomcat-8.5.35.tar.gz

 1 #!/bin/bash
2 systemctl stop firewalld
3 setenforce 0
4 echo "==========安装更新========"
5 yum -y install epel-release
6 yum -y install supervisor
7 echo "=======初始化tomcat======="
8 touch /etc/supervisord.d/tomcat.ini
9 echo > /etc/supervisord.d/tomcat.ini
10 echo "=======配置jdk环境========"
11 java -version > /dev/null
12 if [ $? -ne 0 ]; then
13 cd /opt/
14 rpm -ivh jdk-8u131-linux-x64_.rpm
15 fi
16 echo "=====tomcat单机多实例====="
17 mkdir /opt/tomcat
18 for i in `seq 1 3`
19 do
20 t8009=`expr 8009 + $i`
21 t8005=`expr 8005 + $i`
22 t8080=`expr 8080 + $i`
23 mkdir /opt/tomcat/tomcat$i
24 cd /opt/
25 tar -zxvf /opt/apache-tomcat-8.5.35.tar.gz
26 mv /opt/apache-tomcat-8.5.35 /opt/tomcat/tomcat$i/apache-tomcat-8.5.35
27 cd /opt/tomcat/tomcat$i/apache-tomcat-8.5.35/conf
28 sed -i "s#8009#$t8009#g" server.xml
29 sed -i "s#8005#$t8005#g" server.xml
30 sed -i "s#8080#$t8080#g" server.xml
31 cat >>/etc/supervisord.d/tomcat.ini<<EOF
32 [program:tomcat$i]
33 command=/opt/tomcat/tomcat$i/apache-tomcat-8.5.35/bin/catalina.sh run
34 EOF
35 done
36 supervisord -n

脚本执行后是supervisor的前台执行方式

也可以使用系统的后台开启方式

1 systemctl start supervisord

步骤完成后修改supervisor的配置文件,打开端口

1 [inet_http_server]         ; inet (TCP) server disabled by default
2 port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
3 username=user ; (default is no username (open server))
4 password=123 ; (default is no password (open server))

这里需要注意的是port的端口设置,由于127是回环地址,需要改为自己生产环境的ip地址

yum安装的supervisor工具直接系统启动服务即可,查看状态为running正常状态

开启三台tomcat服务,或者可以使用脚本代替

完成后进入服务里面可以看到开启的tomcat

通过help可以发现里面还可以进行开启关闭以及重启等服务

下面就是访问网页管理端

http://localhost:9001

登录账号及密码

可见通过页面的点击可以实现不同tomcat的管理

日志如下

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting

解决方法:

find / -name supervisor.sock

unlink /name/supervisor.sock

supervisor管理tomcat的更多相关文章

  1. 使用supervisor管理tomcat,nginx等进程详解

    1,介绍 官网:http://supervisord.org Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时 ...

  2. supervisor管理进程工具配置

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...

  3. 在Docker里使用(支持镜像继承的)supervisor管理进程(转)

    这篇文章是受 dockboard 之托帮忙翻译的与 docker 有关的技术文章.译自 Using Supervisor with Docker to manage processes (suppor ...

  4. Supervisor 管理后台守护进程

    Supervisor 管理后台守护进程 参考原文如下: http://codinn.com/people/brant/notes/110948/ 做了一些注释 +++++++++++引用开始+++++ ...

  5. 如何使用supervisor管理你的应用

    1.前言 Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是UNIX-like系统下的一个进程管理工具,不支持Windo ...

  6. Supervisor管理进程

    Supervisor管理进程 转载 2016年04月14日 18:26:45 标签: supervisord 28344 Supervisor重新加载配置启动新的进程 liaojie 发布于 1年前, ...

  7. 配置supervisor管理beego应用

    一.golang.beego等环境安装与配置 二.supervisor安装 github项目地址:https://github.com/Supervisor/supervisor 克隆项目:git c ...

  8. Supervisor 管理进程,Cloud Insight 监控进程,完美!

    Supervisor 是由 Python 语言编写.基于 linux 操作系统的一款服务器管理工具,用于监控服务器的运行,发现问题能立即自动预警及自动重启等. Cloud Insight 是一款次世代 ...

  9. supervisor管理进程 superlance对进程状态报警

    supervisor介绍 首先,介绍一下supervisor.Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linu ...

随机推荐

  1. 【一起学源码-微服务】Ribbon 源码三:Ribbon与Eureka整合原理分析

    前言 前情回顾 上一篇讲了Ribbon的初始化过程,从LoadBalancerAutoConfiguration 到RibbonAutoConfiguration 再到RibbonClientConf ...

  2. 《算法笔记》之基础C/C++入门

    开始进行算法笔记的学习,在此纪录下来,同时作为自己日后复习资料. 1.基本语法 #include <iostream> using namespace std; int main(){ c ...

  3. mybatis两种方式

    // 1.传统的使用 statementId方式 //获取详情 sysApiDocumentMode = template.selectOne("oaApiDocument.getProje ...

  4. 利用cuteftp上传并修改网站上内容

    1.下载cuteftp 2.在host中输入网址(如:219.142.121.2) 3.username中输入(如:BNULS) 4.passpord中输入:(如410teamgood) 5.端口输入 ...

  5. iOS滤镜系列-滤镜开发概览

    概述 滤镜最早的出现应该是应用在相机镜头前实现自然光过滤和调色的镜片,然而在软件开发中更多的指的是软件滤镜,是对镜头滤镜的模拟实现.当然这种方式更加方便快捷,缺点自然就是无法还原拍摄时的真实场景,例如 ...

  6. .Net Framework为什么需要联网?

    .Net Framework在安装时需要从微软官方网站下载语言包,所以需要联网. 如果想要真正离线安装,需要先把所需的语言包下载下来.

  7. @RequestParam,@PathVariable,@RequestBody

    @RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @P ...

  8. Elasticsearch 开箱指南

    内容概要 ES 基础介绍,重点是其中的核心概念. 基础 API 实践操作. 1. 基础介绍 Elasticsearch (ES) 是一个数据库,提供了分布式的.准实时搜索和分析. 基于 Apache ...

  9. python property()函数:定义属性

    正常情况下,类包含的属性应该是隐藏的,只允许通过类提供的方法来间接的实现对类属性的访问和操作. class Person: #构造函数 def __init__(self, name): self.n ...

  10. if(a)是什么意思

    if(a)等价于 if(a!=0) if(!a)等价于 if(a==0)