在開發中我們經常會遇到測驗或生產環境代碼啟動不了的情況,遇到這總情況大致可以用以下三步處理方式:
1.首先看有沒有日志輸出
查看應用輸入的log日志,如果有對應log的日志可以對癥下藥,

2.查看控制臺日志
如果沒有log日志,說明應該可能還沒有完全啟動完成,這時候不一定有日志輸出,那么就需要查看控制臺日志了,
一般我們會運行一個啟動腳本,這個時候修改一些啟動引數后即可看到控制臺輸出,

一般來說生產/測驗的運行資訊不會輸出控制臺,需要修改腳本才可看到輸出到控制臺的資訊,
簡單介紹下 >>/dev/null 2>&1 &
1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt
2:/dev/null 代表空設備檔案, 所有寫入它的內容都會永遠丟失
3:2> 表示stderr標準錯誤
4:& 表示等同于的意思,2>&1,表示2的輸出重定向等同于1
5:1 表示stdout標準輸出,系統默認值是1,所以">/dev/null"等同于 "1>/dev/null"
6:&表示后臺運行
因此,>/dev/null 2>&1 也可以寫成“1> /dev/null 2> &1”
那么本文標題的陳述句執行程序為:
1>/dev/null :首先表示標準輸出重定向到空設備檔案,也就是不輸出任何資訊到終端,說白了就是不顯示任何資訊,
2>&1 :接著,標準錯誤輸出重定向 到 標準輸出,因為之前標準輸出已經重定向到了空設備檔案,所以標準錯誤輸出也重定向到空設備檔案,
然后后臺運行
因此我們想要看到控制臺資訊
只要將 >>/dev/null 2>&1 去掉即可
有 >>/dev/null 2>&1 & 命令時,控制臺沒有任何資訊

去掉后可以看到控制臺輸出了

3.查看linux錯誤日志
如果錯誤日志還是沒有輸出,但是程式還是突然暴斃,那么就要看看是不是linux環境的問題了,
這時候運維神命令 dmesg就可以上場了,
dmesg 命令主要用來顯示內核資訊,使用 dmesg 可以有效診斷機器硬體故障或者添加硬體出現的問題,另外,使用 dmesg 可以確定您的服務器安裝了哪些硬體,每次系統重啟,系統都會檢查所有硬體并將資訊記錄下來,執行/bin/dmesg 命令可以查看該記錄,開機資訊亦保存在/var/log目錄中,名稱為dmesg的檔案里,
dmesg -T | grep java

這個例子中發現由于使用記憶體超過了容器設定,被容器kill掉了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272057.html
標籤:其他
上一篇:21中科大軟體學院上岸經驗帖
下一篇:Redhat8 基礎命令(1)
