linux下tomcat关闭后还有进程

本文记录了一次在Linux环境下部署程序遇到的Tomcat进程残留问题。作者通过排查发现,问题根源在于Quartz定时任务未正确关闭,导致Tomcat关闭后仍有进程残留。文章最后给出了在Listener中加入关闭定时任务的方法,解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天发现的问题,记录一下:

修改了程序,eclipse中运行一切正常,部署到linux,重启tomcat发现,运行出现不少错误,看似之前的版本引起的,刚开始以为是tomcat缓存,然后清空了work下的Catalina还是一样。。重新部署重启了多次都无效!

折腾许久,突然想起来查看下tomcat进程,ps -ef | grep tomcat 发现一大堆tomcat运行的进程,我晕,才发现之前一直使用./shutdown 关闭了tomcat,进程其实还在。

在网上找了很多原因,还以为是tomcat需要作什么配置,其实都不是..最终找到问题原因:

原来是程序使用Quartz定时任务,只在监听器中初始化时启动了schedule,但是没写停止的程序,导致即使tomcat关闭了这个进程一直不会关闭。

所以需要在Listener中销毁上下文的时候关闭一下:

/**
     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent sce) {
        // TODO Auto-generated method stub
        try {
            if (scheduler !=null && scheduler.isStarted()) {
                scheduler.shutdown();
            }
        } catch (SchedulerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

然后测试,重启tomcat然后shutdown,再次查看进程,OK! 没了。

转载于:https://www.cnblogs.com/seri17/p/7149811.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值