关于CentOS中tomcat的8005端口启动不起来或者启动缓慢的解决办法

于CentOS中tomcat的8005端口启动不起来的解决办法
在阿里云CentOS环境中配置tomcat服务器,结果tomcat的8005端口半天都起不来(tomcat的关闭端口),这个端口起不来就无法访问tomcat和关闭tomcat。杀进程或者shutdown.sh永远失败,重启服务器也不行
(ps:最新发现,不是tomcat不能用了,是启动太慢了,我误认为不能用了)
最后找到原因:

tomcat在启动时会使用如下几个端口
这里写图片描述
其中8005端口使用的比较晚,也就是说,我们刚startup.sh的时候,使用netstat -tlpn查看,是没有8005端口的,过一段时间tomcat完全启动

之后,才会出现8005端口占用。

而出现我那种情况的原因是,在tomcat启动后,8005端口占用前,我就shutdown.sh了,就报错8005云云。。。

所以以后shutdown.sh的时候确保8005已占用就好了
在8005端口启动前就shutdown.sh,导致了异常,为什么别人没有遇到?原来别人的tomcat在1s内就启动8005端口了,而我的tomcat启动为什么这么慢?
查看tomcat log
这里写图片描述
大红框为一次完整启动tomcat打印的log,图中可以看出耗时在小红框标记的地方,经搜索,终于找到启动慢的根源了,原来是计算随机数的时候阻塞了。。
解决方法:

直接配置jdk securerandom.source为urandom解决:
1.打开$JAVA_HOME/jre/lib/security/java.security这个文件,找到securerandom.source配置项

修改为:
securerandom.source=file:/dev/./urandom

2.保存退出后,使用killall杀掉java进程:
killall java

3.启动tomcat,8005端口就起来了:
好了好了,tomcat启动快了,800ms搞定,不会异常了

猜你喜欢

转载自blog.csdn.net/Hhc0917/article/details/81082704