操作目的:用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

最新文章

  1. Day11-协程/异步IO/RabbitMQ
  2. Knockout JS实现任务管理应用程序
  3. C++开发者都应该使用的10个C++11特性
  4. Android 透明Button
  5. CodeForces 697B Barnicle 模拟
  6. mysql之SQL---存储过程
  7. Android一个自定义的进度环:ProgressChart
  8. u-boot2010.06移植阶段三--norflash驱动
  9. 服务器内存占用不断的增加 &amp; 任务管理器(PF使用率)不断的增加:关注句柄数
  10. Windows下Node.js的安装与配置
  11. [BZOJ 1032][JSOI 2007]祖玛 题解(区间DP)
  12. UVA-1663 Purifying Machine (最大匹配数)
  13. Android 开发服务类 04_ServletForPOSTMethod
  14. 数据结构基础 ---- 数组的理解和实现(Java)
  15. 使用angluar-cli的ng g component home指令出现的错误
  16. List of regional organizations by population
  17. 程序猿之GitHub
  18. QT 文本html显示格式的问题,如在QTextBrowser.setText用tr(),其中为html格式
  19. xtarbackup恢复
  20. ACM_01背包2

热门文章

  1. JVM性能优化系列-(1) Java内存区域
  2. Hive直接读取Hbase及MySQL数据
  3. 【5min+】 什么?原来C#还有这两个关键字
  4. Python基础复习函数篇
  5. python防止字符串转义
  6. Redis系列(一):Redis简介及环境安装
  7. VMware显示错误:“未能锁定文件 无法打开磁盘 ..\*.vmdk 或者某一个快照所依赖的磁盘。”解决办法
  8. Lua表(table)的个人总结
  9. opencv利用svm训练
  10. python 面向对象-初识