指令碼啟動tomcat專案當機問題 org.apache.coyote.AbstractProtocol pause

你好--生活發表於2020-02-04

專案指令碼啟動之後,服務就會當機

tomcat 異常資訊

tomcat異常資訊
在這裡插入圖片描述

本人分析彎路

剛看到這個異常資訊的時候,感覺異常資訊很明顯(本以為除錯好了,重啟,大約半個多小時之後,服務還是當機)。
以為是Dubbo的問題,版本衝突,缺少依賴在這裡插入圖片描述

分析日誌發現

日誌第一行顯示的是 org.apache.coyote.AbstractProtocol pause
看整個報錯資訊可以看到程式銷燬的記錄,從pause到destory的過程:

org.apache.coyote.AbstractProtocol pause
Pausing ProtocolHandler
......
org.apache.catalina.core.StandardService stopInternal
Stopping service Catalina
......
org.apache.coyote.AbstractProtocol stop
Stopping ProtocolHandler
......
org.apache.coyote.AbstractProtocol destroy
Destroying ProtocolHandler

最終問題

再次根據日誌檔案分析報錯資訊,就是指令碼啟動的問題。
start.sh 指令碼簡化內容為:

echo '刪除原專案...'
rm -rf webapps/ROOT
echo '移動專案...'
mv ROOT.war webapps/
echo '啟動專案...'
sh bin/startup.sh
echo '列印日誌...'
tail -f logs/catalina.out

用指令碼方式啟動的話,使用ps -ef | grep start.sh命令,就會發現,指令碼啟動的程式。當使用kill -9 殺死程式的話,專案就不會在隨著ssh 斷開連線而中止專案。
具體分析可以參考(https://blog.csdn.net/iteye_15549/article/details/82609679

相關文章