美國網(wǎng)站后綴搜索引擎優(yōu)化的方法
一.tomcat突然宕機時間
???????? 2019年10月19號8點30分51秒,xxxx系統(tǒng)生產環(huán)境的92機器出現(xiàn)tomcat突然宕機問題。
二.問題定位
1.排查tomcat的啟停日志。在文件tomcat/logs/localhost.xxxx.log,排查tomcat的啟停日志正常。在宕機時刻,有關閉日志輸出。
2.使用history命令,查看系統(tǒng)的操作命令。發(fā)現(xiàn)使用‘./bin/startup.sh & tail –f logs/catalina.out’的啟動命令,并沒有任何kill命令和shutdown命令。
3.排查tomcat的運行日志。在文件tomcat/logs/catalina.out中,找到tomcat宕機的時間點的日志,發(fā)現(xiàn)沒有收到shutdown port的日志。而正常收到shutdown port 命令的會輸出日志“org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.”。
4.排查項目的異步日志文件輸出,在宕機時間點,所有接口請求正常,響應正常,有接口請求日志輸出,有響應日志輸出。
???????? 5.經過在網(wǎng)上搜索資料發(fā)現(xiàn)。使用‘&’字符命令方式。如果此時,未關閉日志輸出,而直接關閉ssh終端,會殺掉最后一行命令‘./bin/startup.sh & tail –f logs/catalina.out’所影響的兩個進程,即tomcat的進程和查看日志進程。此時導致了tomcat關閉,出現(xiàn)了突然宕機。
三.場景復現(xiàn)步驟
1.正常關閉tomcat應用,在tomcat運行日志中輸出“org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.”。
2.使用“‘./bin/startup.sh & tail –f logs/catalina.out’”命令啟動tomcat,項目正常啟動,并打開了日志輸出。
3.直接關閉ssh終端。
4.打開ssh終端,并查看tomcat的啟停日志文件,發(fā)現(xiàn)在關閉ssh終端的同時,tomcat應用被關閉。
5.查看tomcat的運行日志,發(fā)現(xiàn)在關閉時刻,沒有輸出“shutdown port”的日志。
6.使用‘./bin/startup.sh’啟動tomcat。此時關閉終端。
7.打開ssh終端,tomcat正常提供服務。
經上述步驟驗證。在使用“&”字符并列命令是,會開啟多個進程。此時直接關閉ssh終端,則會關閉上述的多個進程。
如下圖。正常使用“shutdown”命令關閉tomcat的日志輸出。
?
四.解決方案
???????? 1.tomcat啟動時,盡量不使用“&”字符并列命令。如果使用了,必須先退出當前終端窗口后,再關閉SSH終端。
???????? 2.tomcat啟動使用單命令“startup.sh”。