Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程

原因:

一般造成这种原因是因为项目中有非守护线程的存在;

解决方案:

一、从Tomcat上解决

方案1:(推荐的方案:因为一台机器里可能有很多tomcat,不能kill所有)

基本原理为启动tomcat时记录启动tomcat的进程id(pid),关闭时强制杀死该进程

(1),在tomcat/bin/catalina.sh脚本的代码前,加入以下语句:

  1. ##################################################
  2. if [ -z "$CATALINA_PID" ]; then
  3. CATALINA_PID=$PRGDIR/CATALINA_PID
  4. cat $CATALINA_PID
  5. fi
  6. ##################################################

(2),在tomcat/bin/shutdown.sh文件,在最后一行加上-force:

  1. 原来的 exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
  2. 增加参数后 exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"

方案2:(查找到所有的tomcat进程,然后逐一杀死它们)

  1. #查找到所有的tomcat进程
  2. #ps -ef | grep tomcat
  3.  
  4. #然后逐一杀死它们
  5. #kill -9 pid

方案3:(一次性杀死所有的tomcat进程)

  1. #kill -9 `ps -ef|grep tomcat|awk '{print $2}'`

二、从程序上解决

方案1:(要求较高,项目底层代码的修改)

在项目中找到对应new Thread的地方setDaemon(true),后面shutdown就没有tomcat进程了;

Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程的更多相关文章

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

    tomcat在windows下可以直接关闭,但是貌似在Linux下有时候shutdown.sh 没有关闭tomcat进程:国庆前最后一天没事,解决你~~~~ 现象: 在Linux下shutdown.s ...

  2. 转 解决linux下tomcat的shutdown命令杀不死进程

    tomcat在windows下可以直接关闭,但是貌似在Linux下有时候shutdown.sh 没有关闭tomcat进程; 现象:在Linux下shutdown.sh ,然后查看tomcat进程发现没 ...

  3. linux下tomcat服务器的启动和关闭以及查看实时打印日志

    本页面中的操作都在tomcat的bin目录下 <一> 一般我都是使用: ./shutdom.sh //关闭tomcat ./startup.sh //开启tomcat服务 <二> ...

  4. linux下tomcat相关的命令

    1.查看Tomcat是否以关闭 ps -ef|grep tomcat 2.直接干掉Tomcat可以使用kill命令,直接杀死Tomcat进程(这个命令用在当你关闭tomcat报错的时候直接杀死进程) ...

  5. linux下不能使用shutdown命令

    命令查看:  #echo $PATH     /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/sbin;/ ...

  6. Linux下Tomcat服务器重启与关闭

    Linux下Tomcat重新启动 详细请参照原网站链接http://www.cnblogs.com/tovep/articles/2473147.html 在Linux系统下,重启Tomcat使用命令 ...

  7. 阿里云OneinStack,Linux下tomcat命令

    阿里云OneinStack,Linux下tomcat命令 Linux下如何查看tomcat是否启动在Linux系统下,重启Tomcat使用命令操作的首先,进入Tomcat下的bin目录cd /usr/ ...

  8. linux下tomcat服务的启动、关闭与错误跟踪

    linux下tomcat服务的启动.关闭与错误跟踪,远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务: 1).启动tomcat服务 进入tomcat主目录下的bin目录,然后执行如下 ...

  9. Linux下Tomcat重新启动,及kill命令的使用

    Linux下Tomcat重新启动,及kill命令的使用 首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh 查 ...

随机推荐

  1. POJ-2329 Nearest number - 2(BFS)

    Nearest number - 2 Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4100 Accepted: 1275 De ...

  2. HDU 5512 - Pagodas - [gcd解决博弈]

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5512 Time Limit: 2000/1000 MS (Java/Others) Mem ...

  3. 【python-opencv】22-直方图

    直方图目录: 22.1 直方图的计算,绘制与分析 22.1.1 统计直方图 22.1.2 绘制直方图 22.1.3 使用掩膜(遮罩) 22.2 直方图均衡化 22.2.1 OpenCV中的直方图均衡化 ...

  4. java连接数据库时的报错

    //java连接数据库时的报错 1 package Java数据库编程; import java.sql.DriverManager; import java.sql.SQLException; im ...

  5. [解决]WPF 在 win7 系统无法运行:FileNotFoundException

    开发环境:VS2015 + .NET 4.6.2 开发项目1:WPF + CefSharp 开发项目2:WPF 情况:两个项目编译的程序都无法在客户环境的 win7上运行,事件查看器中如下日志: Th ...

  6. Spring Boot打war包

    然后修改下入口: 这样程序既可以以war也可以以jar的形式run. 右键项目properties,找到项目位置,然后: 然后放到tomcat的webapps的目录下: 然后启动tomcat:star ...

  7. 【Python】easygui小甲鱼

    翻译改编自官方文档:http://easygui.sourceforge.net/tutorial/index.html 翻译改编者:小甲鱼,本文欢迎转载,转载请保证原文的完整性! 演示使用 Pyth ...

  8. HTML5插件

    HTML 助手(插件) 辅助应用程序(helper application)是可由浏览器启动的程序.辅助应用程序也称为插件. 辅助程序可用于播放音频和视频(以及其他).辅助程序是使用 <obje ...

  9. selenium-python:登录网站并签到

    测试网站的图像验证码统一设置成了:121 Elements中定位元素比较费眼睛~~ import time from selenium import webdriver # import os use ...

  10. linq判断一个枚举的Name是否存在

    比如,枚举如下: [Serializable] public enum PayType : int { /// <summary> /// AAA /// </summary> ...