通過shell的&命令執行“./startup.sh & tail -f ../logs/catalina.out”時造成tomcat的所屬的jvm關閉並且對於的服務掛掉了

引言

前兩天有個顯示系統最近升級完成以後,每天晚上tomcat自動shutdown, 非常奇怪的一個問題,因爲系統晚上有很多定時任務需要執行,這就導致很多數據統計都錯了,並且會影響第二天的使用, 連續兩天出現這樣的情況,第一次,正好是我們晚上升級系統,所以假定認爲使我們升級導致的,但是第二天我們 並沒有更新代碼,系統仍然down掉了,這就非常嚴重了,於是,我接入了排查。先看一下日誌:

 剛開始看到這個日誌的時候,我們全部注意力都被上面的警告吸引,於是,認爲是數據庫連接池有問題,在檢查了項目中的相關配置和數據庫的配置以後, 發現這不應該是造成tomcat down掉的原因。

最後,我注意到了最後幾行日誌,發現了tomcat 執行了 stopping ProtocolHandler。

最後,查找了很多資料,發現竟然是前天我們運維新上了一個重啓腳本,並且在腳本中增加了查看tomcat日誌的命令,也就是在一個shell腳本中執行./startup.sh後,緊接着執行了tail -f ../logs/catalina.out。這樣我們在重啓項目以後,就可以直接查看啓動日誌了。

那麼 什麼操作可以發現這個問題呢:

1、執行 ./startup.sh & tail -f ../logs/catalina.out

2、直接關掉shell窗口,

 注意:如果你先執行了ctrl+c,然後將xshell窗口關掉,就不會出現這個問題。

找到這個原因後,我回想了一下,出現問題的操作,就是因爲我在下班之前,執行了重啓腳本,然後直接關閉電腦走了,然後在我剛關閉電腦,斷開xshell窗口,系統就掛了。。。。

具體細節,可以參考下面文章:

https://blog.csdn.net/weixin_40654252/article/details/84108500

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章