热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Centos7.2下tomcat8shutdown报错8005端口

最近遇到这个问题,在Centos7.2下搭建了一个tomcat8,开始用的挺好,突然有一次shutdown.sh关闭tomcat时报错了,里面有8005啥的以后再也用不了tomcat了,

最近遇到这个问题,

在Centos7.2下搭建了一个tomcat8,开始用的挺好,突然有一次shutdown.sh关闭tomcat时报错了,里面有8005啥的

以后再也用不了tomcat了,shutdown.sh永远失败,重启服务器也不行(云服务器)

(ps:最新发现,不是tomcat不能用了,是启动太慢了,我误认为不能用了,上述错误出现后,杀死tomcat进程或者重启服务器就可以解决,唉,小白苦逼啊)

最后找到原因:

tomcat在启动时会使用如下几个端口


其中8005端口使用的比较晚,也就是说,我们刚startup.sh的时候,使用netstat -tlpn查看,是没有8005端口的,过一段时间tomcat完全启动

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

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

所以以后shutdown.sh的时候确保8005已占用就好了


20161014更新:

在8005端口启动前就shutdown.sh,导致了异常,为什么别人没有遇到?原来别人的tomcat在1s内就启动8005端口了,而我的tomcat启动为什么这么慢?

查看tomcat log


大红框为一次完整启动tomcat打印的log,图中可以看出耗时在小红框标记的地方,经搜索,终于找到启动慢的根源了,原来是计算随机数的时候阻塞了。。

详细说明点击http://blog.csdn.net/rankun1/article/details/52815960

解决方法:

直接配置jdk securerandom.source为urandom解决:

打开$JAVA_HOME/jre/lib/security/java.security这个文件,找到securerandom.source配置项

修改为:

securerandom.source=file:/dev/./urandom
好了好了,tomcat启动快了,800ms搞定,我没机会在8005启动前shutdown.sh了,不会异常了,
这个问题可折磨死小白我了,到此完美解决


推荐阅读
author-avatar
非常异族图腾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有