Linux
頂級命令輸出說明(嵌入式系統中)
有人可以幫我理解我從 top 命令獲得的輸出嗎?這就是 oom-killer 被呼叫並殺死我的主應用程序的關鍵。VSZ 和 %VSZ 到底是什麼?什麼是502m304.5??
您的輸出顯示
top
正在列印一些終端無法辨識的轉義序列。您看到一個空白後跟[
更多垃圾字元的位是在大多數終端上工作的轉義序列;這些序列的第一個字元是轉義字元,您的終端將其列印為空白。例如,␛[7m
在標題行的開頭開始反轉影片,␛[0m
停止反轉影片等。我不確定 STAT 和 VSZ 列到底發生了什麼,但似乎 top 也在那裡列印了一些變色序列(這就是它的
m
來源),並且它們已被部分覆蓋(top 可能正在列印一個␈
確實使游標向左移動的字元,以便下一個字元覆蓋那裡的內容)。對於許多程序,
TERM
正確設置環境變數就足夠了:它應該指示不支持任何轉義序列的終端類型。確保您沒有對TERM
某處的值進行硬編碼的腳本。試試TERM=dumb
。如果您使用的是 BusyBox,我認為它的top
硬編碼轉義序列適用於大多數終端,所以您不走運。您可以通過刪除轉義序列的過濾器執行它。未經測試,但應與 BusyBox 一起使用。#!/bin/sh script=$(printf 's/\033\\[[0-9;]*[A-Za-z]//g') sed -e "$script" "$@"
(來自這個更完整的 Perl 腳本)