基于JVM的ShutdownHook端口冲突优雅关闭

当遇到服务启动端口冲突时,可以通过修改启动端口或使用`kill -9 pid`强杀进程解决。然而,强杀可能导致未保存文件等问题,因此推荐使用`kill -15`配合Java的ShutdownHook实现优雅关闭,确保资源如socket、临时文件等得到适当清理和释放。在代码中添加ShutdownHook可以确保服务在关闭前完成必要的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务启动端口冲突解决方案

报错信息:Address already in use

Step1:修改启动端口执行server.port

Step2:lsof -i:端口 或 netstat -anp|grep 端口 ==>找到启动端口对应的服务进程pid
使用kill -9 pid 执行进程pid强杀

强杀严重问题讲解

比如一些服务或对象在进行通道连接,文件输入输入出等。这种情况是不能使用强杀的。强杀就类似电脑你突然把电拔了。你想啊,服务器正在修改一些文件,你突然强杀,这些文件就没有保存

Step3: kill -15配合ShutdownHook实现优雅关闭

kill命令 Linux 中 kill 指令负责杀死进程,其后可以紧跟⼀个数字,代表信号编号(Signal)

kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL
PWR SYS
Java进程优雅关闭的意义

关闭 socket 链接

清理临时⽂件

发送消息通知给订阅⽅,告知⾃⼰下线

各种资源的释放 jerkins钩⼦ ,往git提交代码==》执⾏了⾃动化构建==》服务重启 dubbo spi的钩子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值