1. 程式人生 > >關於CentOS中tomcat的8005埠啟動不起來或者啟動緩慢的解決辦法

關於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搞定,不會異常了