关于tomcat7下shutdown无法正常关闭服务的解决方案

关于tomcat7下shutdown无法正常关闭服务的解决方案

问题:

在停止tomcat运行,一般普遍会选择bin目录下shutdown.sh,但实际情况会导致tomcat无法停止。原因Tomcat启动以后,会启动6条线程:

"ajp-bio-8009-AsyncTimeout" daemon prio=5 tid=7f8738afe000 nid=0x115ad6000 waiting on condition [115ad5000]

"ajp-bio-8009-Acceptor-0" daemon prio=5 tid=7f8738b05800 nid=0x1159d3000 runnable [1159d2000]

"http-bio-8080-AsyncTimeout" daemon prio=5 tid=7f8735acb800 nid=0x1158d0000 waiting on condition [1158cf000]

"http-bio-8080-Acceptor-0" daemon prio=5 tid=7f8735acd000 nid=0x1157cd000 runnable [1157cc000]

"ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon prio=5 tid=7f8732850800 nid=0x111203000 waiting on condition [111202000]

"main" prio=5 tid=7f8735000800 nid=0x10843e000 runnable [10843c000]

其中5条是Dameon线程,而tomcat下shutdown时,并非将main这条Dameon线程终止,而是在配置的端口上通过ServerSocket来监听一个请求的到来,如果请求的字符串和配置的字符串相同的话即跳出循环,这样的话就会运行stop方法,运行完了以后,main线程就退出了。

解决方案:

  1. 首先在任何可访问目录下创建一个pid目录
  2. 然后在tomcat bin/catalina.sh文件下面添加CATALINA_PID=/home/app/tomcats/pid/(唯一).pid
  3. 然后在服务器目录下创建一个tomcatstart.sh文件 bin/catalina.sh start,用于tomcat启动
  4. 同时在服务器目录下创建一个tomcatstop.sh文件 bin/catalina.sh stop -force,用于tomcat停止

问题解决,无需kill

PS:首先必须先创建pid文件目录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值