我在Win7上有一个Tomcat 9.0.0。我有两种关闭服务器的方法:
我仍然观察到不同的行为-虽然第一种方法成功关闭了第二个服务器程序,但该服务器程序仍然处于活动状态(用户代码中可能有一些未完成的线程)。因此,我想知道关闭这些方式的实际区别是什么,tomcat内部是怎么回事?
答案 0 :(得分:0)
通常在执行Ctrl + C时,操作系统会为此进程发送终止信号。强制关闭会导致某些关键数据丢失或某些资源未正确清理,例如数据库连接,线程本地值等。
运行catalina stop命令时,所有资源将逐渐清理和关闭,而不会造成任何损失。另外,如果使用ShutDownHook
注册了任何东西,它也可以正常工作。