tomcat怎么关闭:多方案实操对比
tomcat怎么关闭分为脚本关闭、端口杀进程关闭、服务面板关闭三类方式,脚本关闭优先选shutdown脚本,适合Linux与Windows解压版,延迟3到10秒等待资源释放;端口杀进程适合脚本失效、端口持续占用的场景,执行前核对端口对应的进程PID,避免误杀其他服务;服务面板关闭仅适用于Windows下安装成系统服务的tomcat,操作简单但无法看到控制台日志,该方法的适用边界是tomcat已经通过install.bat注册为Windows服务,直接解压运行的绿色版本无法在服务列表找到对应条目。
tomcat脚本关闭操作
Linux环境下,你进入tomcat根目录下的bin目录,执行./shutdown.sh,脚本会向tomcat发送关闭指令,默认等待5秒后结束进程,如果进程长时间残留,你可以修改conf目录下server.xml,调整shutdown端口和等待超时参数。Windows解压版本,直接双击bin目录里的shutdown.bat,黑窗口会短暂弹出,窗口消失代表关闭指令下发成功,不要在黑窗口弹出时手动关闭窗口,这会中断关闭流程,造成线程残留。
脚本关闭存在响应超时的情况,发送关闭命令后tomcat部分后台线程不会主动退出,端口依旧处于监听状态,此时单纯重复执行shutdown脚本不会生效,需要切换杀进程方式处理。
tomcat端口杀进程关闭操作
| 操作系统 | 查询端口命令 | 结束进程命令 | 适用场景 |
|---|---|---|---|
| Linux | lsof-i:8080 | kill-15PID | 脚本关闭失效,优先使用 |
| Linux | lsof-i:8080 | kill-9PID | 不推荐,强制终止,丢失会话数据 |
| Windows | netstat-ano|findstr"8080" | taskkill/F/PID进程号 | 绿色版tomcat卡死无响应 |
执行kill-15属于优雅关闭,tomcat会先完成当前请求、保存会话再退出,kill-9会直接切断进程,正在写入的文件、数据库事务大概率出现异常,业务服务器尽量避开。
核对端口号。
Windows服务版tomcat关闭操作
Windows系统中tomcat安装为系统服务时,你按下Win+R输入services.msc打开服务管理器,在列表找到对应tomcat服务名称,右键选择停止,系统会自动调用内置关闭逻辑,关闭进度可以在服务状态栏查看,停止成功后状态标记为已停止。这类tomcat启动时没有独立控制台窗口,报错信息保存在logs文件夹内的日志文件,关闭失败时优先查看catalina.out日志定位阻塞线程。
服务方式关闭无法自定义关闭超时时间,超时后系统会自动强制终止进程,生产环境业务流量较大时,建议先切断前端流量入口,再执行停止操作,减少用户请求异常。
关闭完成后验证端口,执行端口查询命令,8080端口不再存在监听记录,才代表tomcat真正关闭完成,只依靠窗口或者服务状态判断存在偏差。
如果你是线上生产环境,优先使用shutdown脚本配合流量切走的流程,不要直接使用强制杀进程,降低业务数据异常的概率。
