`
truekevin
  • 浏览: 2062 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Tomcat不能shutdown

阅读更多
我有一个后台应用程序,是多线程的,没有web界面,但我是用web方式部署的,即在web.xml里配置了监听器,监听器的  public void contextInitialized(ServletContextEvent event) 函数里实例化我那个后台程序并启动那个主应用线程(这个主线程开始后还会启很多工作线程)。现在的问题是,我执行了tomcat的shutdown.sh脚本后,tomcat的8080端口已经关闭了,但ps看系统进程依然还有那个tomcat,我那个应用里会启一个定时任务线程,每隔数秒会打印一些东西,现在shutdown以后它依然在打印。所以每次想彻底的停止我的那个应用,必须kill掉tomcat的进程才可以。 执行shutdown脚本或者在Tomcat Web Application Manager 里单独stop我那个应用都不行。

所以我想问的问题是:
1、这个问题的产生原因?
2、像我这样的应用方式应该注意些什么?在监听器里启动的线程的生命周期如何维护?
3、tomcat shutdown时会作哪些操作? 在Tomcat Web Application Manager 里stop或者 reload一个webapp时又会做那些操作? 对于在和tomcat启动时一同启动的非servlet线程,那些关闭或停止操作会对它们有何影响?
分享到:
评论
2 楼 java.hero 2008-11-06  
退出的时候把jvm退出java.lang.Runtime.this.exit
1 楼 lifethinker 2008-01-23  
我没有实际试验,只是试作分析。

对第一个问题,我认为startup.sh实际上是start一个tomcat非daemon线程,类似的shutdown也就是关闭这个线程。由于你在应用部署时开始新的线程,我想你的线程应该也是非daemon的,这个线程在shutdown不会被关闭,根据jvm退出的规则,只要有非daemon线程没有关闭,jvm就不会退出,因此你的tomcat进程仍然运行在。

对其它问题,如果你要在shutdown关闭时也停止你产生的线程,你应该实现contextInitialized(ServletContextEvent sce)方法,并在其中停止你产生的线程。

说白了,就是资源管理的问题,“自己开启的资源得自己释放”

相关推荐

    tomcat进程不能完全关闭的处理办法.txt

    tomcat shutdown后,进程还存在linux系统中的解决办法

    tomcat不能启动的原因总结

    ### Tomcat不能启动的原因及解决方法 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。然而,在实际使用过程中,可能会遇到Tomcat无法正常启动的情况。本文将根据提供的文件...

    能用的tomcat6

    为了使Tomcat能被操作系统作为服务启动,还需要配置startup.sh和shutdown.sh脚本,并根据系统类型进行相应的权限设置。 2. **目录结构**:Tomcat6的目录结构包括bin、conf、lib、logs、webapps、work等关键部分。...

    Apache-tomcat-6.0.53 for Linux(Redhat/CentOS测试通过)

    提供tomcat6 for linux,给急需使用的朋友应急,官网上不好找了。Redhat6.6下测试通过。安装说明: 1.解压并且解包 ...如果能看到Tomcat的欢迎页表示整合成功,至此已经完成了Java/JSP服务器的搭建。

    tomcat7 tomcat9 两个资源

    3. **启动和停止**:使用bin目录下的startup.bat/sh脚本启动Tomcat,使用shutdown.bat/sh脚本停止Tomcat。也可以通过管理工具如catalina.sh或catalina.bat进行更复杂的管理操作。 4. **Web应用程序部署**:将Web...

    tomcat6.0.18 解压缩版

    4. **环境变量配置**: 配置Tomcat时,可能需要设置`JAVA_HOME`(指向JDK的安装路径)和`CATALINA_HOME`(指向Tomcat解压目录)等环境变量,确保Tomcat能找到Java运行环境和自身资源。 5. **启动和管理**: 使用`bin`...

    解决Tomcat使用shutdown.bat关闭会将其他Tomcat关掉的问题

    在使用Apache Tomcat服务器时,有时可能会遇到一个棘手的问题:当你尝试通过`shutdown.bat`脚本关闭一个Tomcat实例时,它意外地关闭了同一台机器上的其他Tomcat实例。这个问题主要是由于Tomcat的批处理脚本如何查找...

    Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项(tomcat8为例)

    ExecStop=/usr/local/tomcat/apache-tomcat-8.5.47/bin/shutdown.sh User=root Restart=always [Install] WantedBy=multi-user.target ``` 3. **保存并关闭文件**,然后更新systemd的缓存,并启用Tomcat服务...

    apache-tomcat-7.0.39

    - `bin`:包含Tomcat的可执行文件和脚本,如startup.sh/startup.bat用于启动Tomcat,shutdown.sh/shutdown.bat用于关闭Tomcat。 - `conf`:存放所有配置文件,如server.xml、web.xml、context.xml等。 - `lib`:存储...

    apache-tomcat-8.5.27安装配置1

    在本文中,我们将详细探讨如何安装和配置Apache Tomcat 8.5.27版本,包括设置JDK路径、配置shutdown行为、修改端口号、配置用户权限以及启用远程调试。 1. **解压与配置JDK** - 首先,你需要将Tomcat和JDK解压到...

    apache-tomcat-8.5.23.tar.gz 【Tomcat服务器,Tomcat8.5 linux版】

    4. **访问Tomcat**:通过浏览器输入`http://your_server_ip:8080`,如果一切正常,你应该能看到Tomcat的欢迎页面。 5. **部署应用**:将你的Web应用程序(WAR文件或解压的目录)复制到`webapps`目录下,Tomcat会...

    tomcat8.5.59

    3. 启动与停止:使用`bin/startup.sh`(Unix/Linux)或`bin/startup.bat`(Windows)启动Tomcat,`bin/shutdown.sh`或`bin/shutdown.bat`则用于关闭服务器。 4. 配置与管理:通过修改`conf/server.xml`配置文件,...

    tomcat-8.5.54.zip

    使用`bin/startup.sh`(Unix/Linux)或`startup.bat`(Windows)脚本来启动Tomcat,`shutdown.sh`或`shutdown.bat`用于停止服务。 6. **安全管理** Tomcat提供了多种安全管理策略,如 Realm配置来验证用户身份,...

    linux下tomcat7,tomcat8

    ./shutdown.sh ``` 3. 对于Tomcat 8,启动和停止命令相同。 五、配置Tomcat服务 为了方便管理和自动化启动,可以将Tomcat设置为系统服务。可以使用Systemd或init.d脚本来实现。 六、Tomcat 7与Tomcat 8的区别 1. *...

    apache-tomcat-7.0.82.tar.gz 【Tomcat服务器,Tomcat7 Linux版】

    6. 测试Tomcat是否正常工作,访问`http://your_server_ip:8080`,如果能看到Tomcat的欢迎页面,说明安装成功。 在实际使用中,你可能还需要配置虚拟主机、调整Tomcat的性能参数、安全管理、日志管理等。此外,...

    apache-tomcat-8.5.100.tar.gz

    - 启动与停止:通过bin目录下的startup.sh或startup.bat启动Tomcat,使用shutdown.sh或shutdown.bat停止。 2. 使用Apache Tomcat托管Web应用: - 将WAR文件放入webapps目录下,Tomcat会自动解压并部署应用。 - ...

    tomcat_linux

    1. 停止Tomcat:使用`shutdown.sh`脚本 ```bash ./shutdown.sh ``` 2. 配置Tomcat:主要修改`conf`目录下的配置文件,如`server.xml`、`web.xml`等,以调整服务器设置。 3. 部署Web应用:将WAR文件放入`...

    tomcat自动定时重启

    1. **创建关闭任务**:编辑`Tomcat_shutdown.bat`,确保它能正确关闭Tomcat服务。如果需要,可以添加额外的命令行参数,例如指定Tomcat的工作目录。 2. **创建启动任务**:编辑`Tomcat_startup.bat`,确保它能成功...

    Linux下Tomcat重新启动

    在 Tomcat 的 bin 目录下,有一个 shutdown.sh 文件,这个文件就是 Tomcat 的关闭命令。我们可以使用 ./shutdown.sh 命令来关闭 Tomcat。 但是,在关闭 Tomcat 之前,我们需要检查 Tomcat 是否已经关闭。我们可以...

    tomcat6.0.35_tomcat_

    2. **启动与停止**:通过`bin/startup.sh`(Linux/Unix)或`bin/startup.bat`(Windows)脚本启动Tomcat,使用`bin/shutdown.sh`或`bin/shutdown.bat`关闭服务。 3. **配置文件**:主要的配置文件包括`conf/server....

Global site tag (gtag.js) - Google Analytics