侧边栏壁纸
博主头像
一揽芳华 博主等级

行动起来,活在当下

  • 累计撰写 265 篇文章
  • 累计创建 24 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

05.使用supervisord管理tomcat

芳华是个男孩!
2024-10-14 / 0 评论 / 0 点赞 / 11 阅读 / 0 字
广告 广告

title: 05-管理tomcat
order: 5

icon: lightbulb

1.使用dockerfile构建tomcat镜像

# 镜像自己创建的
FROM supervisor:1.0 

MAINTAINER zxw<zxw@xxjsjl.cn>

# 把宿主机当前上下文的readme.txt拷贝到容器/usr/local/路径下
 readme.txt /usr/local/cincontainer.txt

# 把java和tomcat添加到容器中(会自动解压)
ADD jdk-8u201-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.78.tar.gz /usr/local/

# 设置启动访问的初始位置,即工作目录,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH

# 配置java和tomcat的环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_201
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINE_HOME /usr/local/apache-tomcat-9.0.78
ENV CATALINE_BASE /usr/local/apache-tomcat-9.0.78
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINE_HOME/lib:$CATALINE_HOME/bin

EXPOSE 8080
EXPOSE 9001
# 容器启动后要执行的命令
CMD /usr/local/apache-tomcat-9.0.78/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.78/bin/logs/catalina.out

2.启动容器

[root@172-0-110-100 tomcat]# docker run -itd --name supervisor_tomcat -p 8080:8080 -p 9001:9001 --privileged=true supervisor/tomcat:latest /usr/sbin/init

修改supervisor服务,开放web做测试

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

启动tomcat服务

[root@7e3176fd1279 etc]# /usr/local/apache-tomcat-9.0.78/bin/startup.sh

测试tomcat服服务

测试supervisor服务

3.编写tomcat的supervisor子进程管理文件

[root@7e3176fd1279 supervisord.d]# vim tomcat.ini
##程序名称
[program:tomcat]
directory=/usr/local/apache-tomcat-9.0.78
##程序运行的命令
command=/usr/local/apache-tomcat-9.0.78/bin/catalina.sh run
##是否在supervisord启动后tomcat也启动
autostart=true
##启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
startsecs=10
##程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启;意思为如果不是supervisord来关闭的该进程则认为不正当关闭,supervisord会再次把该进程给启动起来,只能使用该supervisorctl来进行关闭、启动、重启操作  
autorestart=true 
##启动失败自动重试次数,默认是3
startretries=3 
##用哪个用户启动进程,默认是root
user=root
##进程启动优先级,默认999,假Supervisord需要管理多个进程,那么值小的优先启动
priority=999

stopsignal=INT
##把stderr重定向到stdout标准输出,默认false     
redirect_stderr=true
##stdout标准输出日志文件大小,日志文件大小到200M后则进行切割,切割后的日志文件会标示为catalina.out1,catalina.out2,catalina.out3...,默认50MB                  
stdout_logfile_maxbytes=200MB
##stdout标准输出日志文件备份数,保存100个200MB的日志文件,超过100个后老的将被删除,默认为10保存10个                         
stdout_logfile_backups = 100
##标准日志输出位置,如果输出位置不存在则会启动失败                            
stdout_logfile=/usr/local/apache-tomcat-9.0.78/logs/catalina.out
##默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程  
stopasgroup=false
##默认为false,向进程组发送kill信号,包括子进程                                       
killasgroup=false
##java环境变量
environment=JAVA_HOME="/usr/local/jdk1.8.0_201",JAVA_BIN="/usr/local/jdk1.8.0_201/bin"

4.测试

停止掉tomcat服务,查看完页面之后记得把所有的tomcat进程停止掉,因为你使用supervisor所以当你进入supervisorctl命令行中的时候会有start命令你需要在命令行中执行。{切记:supervisor的进程只能由supervisor来开启}
[root@7e3176fd1279 bin]# shutdown.sh   
Using CATALINA_BASE:   /usr/local/apache-tomcat-9.0.78
Using CATALINA_HOME:   /usr/local/apache-tomcat-9.0.78
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.78/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_201
Using CLASSPATH:       /usr/local/apache-tomcat-9.0.78/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.78/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
[root@7e3176fd1279 bin]# pwd
/usr/local/apache-tomcat-9.0.78/bin

重新加载supervisor服务

[root@7e3176fd1279 supervisord.d]# supervisorctl update
tomcat: added process group

浏览器查看supervisor服务和tomcat服务

使用web界面管理tomcat服务(停止、启动等),略

0
广告 广告

评论区