我用shell去kill -9 tomcat_pid,然后进行相应的操作,然后shell启动该tomcat,报address already in use的异常。
请问,怎么才能判断一个tomcat真正起来了?通过pid和端口的什么状态?
这个问题好像是socket的tcp连接变成了wait状态却没释放导致的,请问有什么合理的解决办法么?
因为是程序自动的,所以不能像人工启动一样,可以等待50秒,等待tcp自动断开连接。
求大神赐教。
kill -9
就是发送term信号给tomcat,然后tomcat自身是不是有监听这个信号从而做处理的程序,一般做热更新的时候需要注意这种情况,比如一个请求后面有一堆事务,如果直接强制杀掉,可能会造成数据异常,所以可能tomcat要等到目前所有已经建立连接的请求返回才关闭。我觉得可以先记录一个pid,然后关闭,再判断进程中是不是新开了了一个pid。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。