码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2015-05-05 19:52:23      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:tomcat quatz linux

    在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之后,进程仍然存在的原因

标签:tomcat quatz linux

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!