首页 > 系统服务 > 详细

Tomcat在shutdown.sh之后,进程仍然存在的原因

时间:2015-05-05 19:50:12      阅读:143      评论:0      收藏:0      [点我收藏+]

    在linux环境下,tomcat 执行shutdown.sh之后,进程仍然存在,这是个让人头疼的问题,个人认为最根本的原因是有一些非deamon thread 存在,这种情况下,tomcat关闭后,整个进程并不会结束。如何判这种情况呢?

    大家可以按照以下步骤去判断:

    1、找到tomcat当前运行的pid(使用ps -ef |grep tomcat),

    2、找到jdk的目录,可以使用which java 命令,并切换到bin目录

    3、在bin目录下执行jstack pid,查看每个thread,找出非deamon thread,进而判断这些thread为何没有停止


例:之前我遇到过的一个场景是在使用Quatz的定时任务,由于没有设置定时任务为deamon的,造成tomcat的进程没有停止。后来配置了Quatz的thread为deamon thread就把这个问题解决了。下面是相关配置,

        <property name="quartzProperties">

    <props>

    <prop key="org.quartz.scheduler.makeSchedulerThreadDaemon">true</prop>

    <prop key="org.quartz.threadPool.makeThreadsDaemons">true</prop>

    </props>

   </property>

以上配置放在了class="org.springframework.scheduling.quartz.SchedulerFactoryBean" 的bean配置项中。



本文出自 “知识搬运工” 博客,请务必保留此出处http://xiaoge90s.blog.51cto.com/6920186/1642209

Tomcat在shutdown.sh之后,进程仍然存在的原因

原文:http://xiaoge90s.blog.51cto.com/6920186/1642209

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!