tomcat - Tomcat 关闭的方式有何不同?

标签 tomcat shutdown catalina

我在 Win7 上有一个 Tomcat 9.0.0。我有两种关闭服务器的方法:

  1. 在服务器控制台中按 Ctrl+C
  2. 运行catalina停止命令

我仍然观察到不同的行为——第一种方法成功关闭第二种方法使服务器进程保持事件状态(可能是用户代码中一些未完成的线程)。所以我想知道这些关闭方式的实际区别是什么,tomacat 内部发生了什么?

最佳答案

通常在执行 Ctrl+C 时,操作系统会为该进程发送终止信号。这是强制关闭,您可能会丢失一些关键数据或某些资源未正确清理,例如数据库连接、线程本地值等。

当运行catalina stop 命令时,所有资源都会被清理并逐渐关闭,不会有任何损失。此外,如果使用 ShutDownHook 注册了任何内容,它也可以正常工作。

关于tomcat - Tomcat 关闭的方式有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54129624/

相关文章:

java - 更改容器 tomcat 服务器上已部署 (Spring Boot) war 的上下文路径。所以它不是 demo-0.01-SNAPSHOT

c# - 向 Windows 服务发送 Windows 消息

Tomcat logging.properties 格式化程序未生效

variables - 如何让 Tomcat 的logging.properties 识别我的 Catalina 变量?

tomcat - 为什么 TeamCity 服务器在启动后短时间停止

eclipse - Apache Tomcat Eclipse 的 414 URI 太长

python - 按下按钮关闭 Raspberry Pi Python

python - twisted:如何在 react 器代码和线程代码之间优雅地通信?

java - Tomcat - 从命令行覆盖 catalina.properties

maven-2 - Maven 从今天早上开始使用 tomcat-maven-plugin 失败