1)linux程式程序被殺,日誌突然中止,可以考慮是否因為程式占用記憶體過高,導致系統記憶體不足,為避免系統崩潰,系統尋找記憶體占用最大的程序kill掉
2)也可能存在執行程式時沒有使用nohup ( no hang up) command &將程序提交到後台執行,一旦控制台關閉,任務程序就會停止執行
3)補充 ctrl+c ctrl + z 區別
1)排查是否因為程式問題導致系統記憶體占用過高而被系統主動殺死,通過檢視linux 系統日誌的方式檢視。
# 通過以下三種命令檢視系統是否主動殺死程式程序
dmesg
|egrep -i -b100 'killed process'
## 或:
egrep -i 'killed process' /var/log/messages
egrep -i -r 'killed process' /var/log
## 或:
journalctl -xb |
egrep -i 'killed process'
2)對應沒有使用nohup command &的情況
排查在linux環境下執行程式時有沒有使用nohup command &命令,將程序提交linux後台中執行,並且在使用nohup命令時,退出伺服器終端連線客戶端時有沒有使用 exit命令正常退出
# nohup命令的正常使用語法,&將程序提交到後台執行,nohup表示退出賬號後程序進行執行,不掛起
nohup
command
&
1)對於程式占用系統記憶體太大,導致系統主動殺死程式程序的情況,應該主動排查程式中**是否存在迭代,迴圈或者記憶體洩露的可能,從**的角度對程式重構。
2)對於沒有正確使用nohup命令導致的程序異常退出,參考如下命令正確的使用nohup將程式放linux後台中執行
『nohup』 表示不掛起, 即正常退出終端連線也不掛起程序。『command』 表示要執行的後台程序 例如:sh run.sh
『>』 表示重定向 表示將 >左邊的訊息定向輸出》右邊的某個檔案中 例如以下命令將標出輸出重定向到out.log檔案中
『2>&1』 是將標準出錯重定向到標準輸出, 2 >代表標準出錯定向 ,&1代表標準輸出
『&』 表示將程式程序提交到後台執行 ,但只使用& 螢幕還是會列印程式相關日誌
# 使用如下命令後台執行程式,out.log為程式日誌輸出的目錄
nohup
command
> out.log 2>
&1 &
# 使用 exit 命令 正常退出終端
exit
執行程式時Warning
執行程式時提出了這個乙個警告 activity not started,its current task has been brought to the front package ying.android import android.os.bundle import android.widget...
C 執行程式時間測試
程式中 include include using namespace std intmain 在命令列中 timer 檔名 檔案輸入輸出 e c vscode cpp acm timer.cpp include 該檔案定義了cin cout cerr 和 clog物件,分別對應於標準輸入流 標準輸...
linux 學習筆記 後台程序執行程式
if defined poe os family windows define pathseprator else define pathseprator endif inline string getprocessdir string strdir ifndef win32 可執行檔案所在目錄 i...