开发者社区> 问答> 正文

kill -9 tomcatPID没有释放相应端口,如何解决?

我用shell去kill -9 tomcat_pid,然后进行相应的操作,然后shell启动该tomcat,报address already in use的异常。
请问,怎么才能判断一个tomcat真正起来了?通过pid和端口的什么状态?
这个问题好像是socket的tcp连接变成了wait状态却没释放导致的,请问有什么合理的解决办法么?
因为是程序自动的,所以不能像人工启动一样,可以等待50秒,等待tcp自动断开连接。
求大神赐教。

展开
收起
落地花开啦 2016-06-03 18:31:42 4055 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    kill -9 就是发送term信号给tomcat,然后tomcat自身是不是有监听这个信号从而做处理的程序,一般做热更新的时候需要注意这种情况,比如一个请求后面有一堆事务,如果直接强制杀掉,可能会造成数据异常,所以可能tomcat要等到目前所有已经建立连接的请求返回才关闭。我觉得可以先记录一个pid,然后关闭,再判断进程中是不是新开了了一个pid。

    2019-07-17 19:27:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多