tomcat 运行shutdown.sh无法结束进程的问题

在生产环境中碰到一种怪异的问题,在停止tomcat时,运行shutdown.sh,看起来好像停掉了,但是后面还有程序在运行,网上查了下资料‘shutdown.sh后存在tomcat僵尸进程的原因是shutdown.sh后web应用没有去关闭其启用的后台线程,所以处理的办法是监听到tomcat关闭事件时,关闭掉其启用的后台线程。’

  这时刚好想起在我们应用中使用了定时任务等功能,但是在shutdown时并没有关闭该任务;
 因为项目使用spring,它已经提供了destroy-method=“”的功能,于是我们在spring配置文件中在需要的bean中加上了该功能,在web.xml中定义:
com.util.CustomedContextLoaderListener
 
监听器类:
public class CustomedContextLoaderListener extends ContextLoaderListener {
public void contextInitialized(ServletContextEvent event) {
   System.out.println("开始加载---");
           super.contextInitialized(event);
}
 
@Override
public void contextDestroyed(ServletContextEvent event) {
System.out.println("-------开始回收,这里就会调用bean里面定义了的destroy-close方法")
               super.contextDestroyed(event);
}
 
}
这样在我们的定时任务bean中增加destroy-close方法,在里面shutdown掉定时任务;这样就可以通过tomact的shutdown.sh停掉服务了
 
转载
SpringBoot4.0+JDK25+GraalVM实战:云原生新纪元,微服务性能翻倍的落地指南 三者的组合不是偶然,而是“框架优化+JDK升级+虚拟机革新”的必然结果——SpringBoot4.0完善了对GraalVM原生镜像的支持,JDK25强化了云原生与AOT编译能力,GraalVM则提供了极致的启动速度和资源利用率,三者协同,刚好命中云原生微服务的核心痛点。SpringBoot4.0+JDK25+GraalVM的组合,不是简单的版本升级,而是云原生微服务的一次性能革命。 阅读详情

相关推荐

通过arcmap制作的第一张流域图

需要知道,识别河流依次需要填洼,流向,流量,栅格计算器,河流链接,河网分级.通过卫星图确定河流入口,在入口处画一个点,注意不要与其他河流相交。随后是进行对河流的筛选使用con函数,筛选流量大于100的河流。我们使用镶嵌工具-->镶嵌至新栅格 将两个数据合并。填洼后如图,随后进行流向的获得.使用流向工具。首先导入准备好的数据,可见两张图片并非一体。教程参考b站up:爱画地图的boney。惊醒栅格河网矢量化,进行河流分级。输入表面栅格数据,等待后如图。本次制作的是双峰县的流域图。输入流向数据,输出后如图。

pianmian1的博客 2230

Tomcat shutdown 出现僵尸进程

tomcat 在shutdown的时候 当有线程没有设置为守护线程的时候 这时候会出现僵尸进程

Dree的专栏 1714

Android无线调试:adb tcpip连接实战指南

本文详细介绍了Android无线调试的完整流程,重点讲解如何使用adb tcpip命令通过Wi-Fi连接设备,摆脱数据线束缚。涵盖环境配置、连接实战、稳定性优化及常见问题排查,帮助开发者高效实现无线adb调试,提升工作效率。

pink的博客 723

tomcat shutdown.sh不能完合关掉tomcat进程的解决方法

1、在tomcat/bin/shutdown.sh文件中增加一个参数原来的 exec "$PRGDIR"/"$EXECUTABLE" stop "$@" 增加参数后 exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"2、在tomcat/bin/catalina.sh脚中,加入下面这三行if [ -z "$CATALINA_PID" ]; then

redlevin的专栏 9169

解决Qt平台插件初始化失败:This application failed to start because no Qt platform plugin could be initialized

本文深入解析了Qt应用程序启动时常见的‘platform plugin’初始化失败报错,指出其核心在于环境变量冲突或多版本Qt共存导致的插件路径混乱。文章提供了从环境变量检查、路径调整到文件补全的完整解决方案,并给出了使用windeployqt工具等预防性开发实践,帮助用户和开发者彻底解决这一经典问题。

weixin_29229261的博客 2210

图数据挖掘 ECC K-core core number truss number clique

K-core:什么叫k-core,给定一个正整数k(k>=0),k-core是一个G的最大子图(也就是说k-core是一个图的限制),将这个子图定义为Hk,对于Hk中的每个顶点v,他的度数都是大于等于k的。 k-core是内嵌的,如下图所示,集合{ABCD}是H3,也就是3-core的子图。而集合{ABCDE}是H2,也就是2-core的子图,集合{ABCDEGF}是H1,也就是1-core的子图,而从集合的角度来讲H3<H2<H1。 core number:什么叫kcor

weixin_45193103的博客 1686

tomcat shudown.sh 无法关闭

灯武 Tomcat使用shutdown.sh无法关闭Java进程的问题跟踪 问题: 在服务器上执行/usr/local/apache-tomcat-7.0.47-3100/bin/shutdown.sh后,使用 ps –aux|grep java 命令查看,发现java进程还存在,但是服务已经不可用了,即服务没有完全关闭。   跟踪过程: 1、  百度查找“Tomcat无法

lin910429的专栏 8367

RK3588部署rtmpose模型

摘要: 本文详细介绍了在RK3588开发板上部署RTMPose模型的全流程。首先在Ubuntu环境中搭建MMCV框架,通过MMPose工具将PTH模型转换为ONNX格式。随后使用RKNN-Toolkit2将ONNX模型转换为RKNN格式,并完成开发板部署。关键步骤包括模型转换(PTH→ONNX→RKNN)、环境配置和推理验证,最终实现人体姿态估计功能。整个过程涉及MMPose、RKNN-Toolkit等工具链的使用,为边缘计算场景下的实时姿态分析提供了可行方案。

qq_44224801的博客 1221

解决tomcat停止失败问题,看这一篇就够了

实际工作中,如果发生通过shutdown.sh停止不了tomcat服务的情况,可以使用如下两种方法解决。

qq_34274094的博客 1718

esp32 python开发环境搭建_eclipse esp32开发环境搭建

安装方法基本是按照官网提供的方法来操作https://github.com/espressif/idf-eclipse-plugin#GettingStarted但是官网的方法安装之后还是不能编译成功的,第一次编译会出现一下问题问题1:Building in: E:\eclipse-workspace\helloworlk\buildcmake -G Ninja -DCMAKE_TOOLCHAIN...

weixin_39978276的博客 1264

卫星轨道坐标转换:轨道六根数到经纬高(经STK验证)

a:半长轴(km)e:偏心率i:轨道倾角(度)Ω:升交点赤经(度)ω:近地点幅角(度)ν:真近点角(度)

weixin_52370774的博客 170

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

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

Michael_base的博客 2223

【Python爬虫(1)】专栏开篇:夯实Python基础

要想熟练掌握 Python 爬虫技术,扎实的 Python 基础是必不可少的。这就好比建造高楼大厦,Python 基础就是那稳固的基石。只有打好了这个基础,我们才能在爬虫的学习道路上稳步前行,理解并运用各种爬虫技术和框架。

邓邓子的博客 2026

linux tomcat守护_Linux下Tomcat的几种运行方式讲解

Linux下Tomcat的启动、关闭在Linux系统下,启动和关闭Tomcat使用命令操作。进入Tomcat下的bin目录cd /java/tomcat/bin启动Tomcat命令./startup.sh停止Tomcat服务命令./shutdown.sh执行tomcat ./shutdown.sh 后,虽然tomcat服务不能正常访问了,但是ps -ef | grep tomcat 后,发现tom...

weixin_35476730的博客 182

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux下Tomcat执行shutdown.sh无法结束进程解决方案

Linux下Tomcat执行shutdown.sh无法结束进程解决方案 Linux下Tomcat执行shutdown.sh的时候,tomcat进程依然还在无法关闭,再次启动tomcat会有两个一样的进程启动,找了好多资料终于解决了这个问题,在此总结一下处理办法,以供参考具体步骤如下: 首先通过ps -ef | grep tomcat 命令找到正在运行的tomcat引用的进程ID 通过 kill -9 进程ID 杀掉正在运行的tomcat进程 ...

慕菲烟*云的博客 1552

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Tomcat无法使用shutdown命令杀死的问题

Tomcat无法使用shutdown命令杀死的问题问题描述问题解决解决方案1解决方案2(需要在tomcat停止的状态下操作) 问题描述 在使用shutdown命令关闭tomcat服务的时候出现如图报错,但是服务确实已经无法访问到了,使用ps -ef | grep tomcat可以看到tomcat进程仍然存在。 问题解决 解决方案1 查找到所有的tomcat,然后手动杀掉(缺点是每次都得操作,如果嫌麻烦可以使用第二种方案) ps -ef | grep tomcat kill -9 pid 解决方案

武亚军的博客 1743

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Tomcat shutdown无法结束进程的问题

问题现象: 执行tomcat/bin目录下的shutdown.sh后,查看tomcat进程,仍然存在。解决方案: 最简单的就是在shutdown后面补上一个kill命令,如下:kill -9 `ps -ef|grep tomcat-api|awk '{print $2}'`其中 tomcat-api 为tomcat的名称。

小单的博客专栏 5484

在Linux系统里运行shutdown.sh命令关闭Tomcat时出现错误提示

服务器:linnux 5.5 64位,已安装好 jdk;     Tomcat版本:apache-tomcat-7.0.53     操作软件:Xshell 4(Free for Home / School)       刚开始重启了一次tomcat,但用浏览器访问网站的时候一直卡着打不开,可能是tomcat的问题,于是在Xshell里输入命令 ps -ef|grep java 查看进程中...

StriverChuiYing的博客 4381

linux结束tomcat,linux使用shutdown.sh命令关闭tomcat进程后还存在处理方法

1、修改bin/catalina.sh文件查找PRGDIR=`dirname "$PRG"` 这一行;在这一行的下面增加语句:if [ -z "$CATALINA_PID" ]; thenCATALINA_PID=$PRGDIR/CATALINA_PIDcat $CATALINA_PIDfi功能:判断 CATALINA_PID有没有配置,没有的话,就使用当前目录(bin)的CATALINA_PID...

weixin_35740875的博客 499

tomcat shutdown.sh结束不了,Could not contact localhost:8005

tomcat shutdown.sh结束不了,Could not contact localhost:8005 #使用./shutdown.sh关闭Tomcat,有时会关闭成功,有时会出现关闭错误; Jul 06, 2017 10:57:37 AM org.apache.catalina.startup.Catalina stopServer SEVERE: Could not contact localhost:8005. Tomcat may not be running. Jul 06, 2017 1

qq_37997592的博客 297

linux终止进程的语句,linux使用shutdown.sh命令关闭tomcat进程还存在处理方法

一、修改bin/catalina.sh文件java 查找PRGDIR=dirname "$PRG" 这一行;在这一行的下面增长语句:linuxif [ -z "$CATALINA_PID" ]; thenCATALINA_PID=$PRGDIR/CATALINA_PIDcat $CATALINA_PIDfi功能:判断 CATALINA_PID有没有配置,没有的话,就使用当前目录(bin)的CATA...

weixin_28309723的博客 512

Tomcat为什么无法关闭

执行了tomcat的shutdown脚本后,java进程仍然存在,认为tomcat的关闭脚本不可靠。好吧,其实shutdown.sh无法停止,不是tomcat问题,是应用有问题,否则可以跑一个空tomcat,保证shutdown百分之百生效。 先说一下tomcat的大概关闭过程: 1 停止连接处理线程Accepter,停止接受新的请求 2 关闭tomcat自身的资源,例如各种service,连接...

bobozai86的博客 7923

linux下tomcat的shutdown命令杀不死进程

现象 在Linux下执行shutdown.sh 或者 catalina.sh stop,然后查看tomcat进程发现没有完全关闭; 网上查找出来解释:一般造成这种原因是因为项目中有非守护线程的存在(关于守护线程阅读下面文章) java的守护线程与非守护线程 JAVA并发编程——守护线程(Daemon Thread)  两个思路,1、从程序上根本解决。 2、从tomcat上解决 一: 从程序上解决(要求较高,项目底层代码的修改)   在项目中找到对应new Thread的地方setDaemon

sqlora的专栏 698

linux下shutdown无法关闭tomcat进程的解决方案

1.   在 catalina.sh 最上面加上 CATALINA_PID="tomcat.pid" . 这样, 在startup的时候在bin目录下会生成一个tomcat.pid文件. 这个是存放tomcat进程id的 2.  在shutdown.sh 文件中. 把  exec "$PRGDIR"/"$EXECUTABLE" stop "$@"   替换为   exe

zilin110的专栏 475

Tomcat无法shutdown进程

linux 运行 shutdown.sh 停止Tomcat的是,使用ps -ef|grep tomcat 时,进程还是存在 以下是一些解决办法,但因为改动还是比较多,最后采用强制kill掉tomcat进程。不清楚是否有其他问题。  http://blog.csdn.net/yydcj/article/details/8482916 http://hnote

想飞的鱼 6260
上一篇: HashSet应用
下一篇: Java Socket Server-client端多线程处理代码示例
weixir123
博客等级 码龄16年 1粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值