Shell

獲取 UNIX 中高記憶體使用程序的完整命令名

  • May 28, 2021

我正在嘗試擷取在我的盒子上使用高記憶體的程序名稱。我執行下面的命令來得到它

while [ 1 ]
do
  ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
  sleep 5
done

但問題是它沒有給我針對 PID 執行的完整 cmd 詳細資訊。我得到的輸出是這樣的:

PID  PPID CMD                            %MEM     %CPU
916 915 /usr/bin/perl /release/data/ 11.9  0.2
831 830 /usr/bin/perl -w /release/da  6.5  0.0
608 607 /etc/alternatives/java_sdk_  2.4  1.2
135 134 /etc/alternatives/java_sdk_  1.4  1.6

我想擷取 PID 的完整 cmd。

我假設“完整的 cmd 詳細資訊”是指包括 arg 列表?如果是這樣,請在下面試試這個。它將為您提供最多 100 個字元寬的 CMD 列。您可以根據需要進行調整。

ps -eo pid,ppid,cmd:100,%mem,%cpu --sort=-%mem | head

您始終可以使用帶有開關的top命令來操作輸出:

top -b -c -n 1 -o +%MEM | sed -n '7,17p'

引用自:https://unix.stackexchange.com/questions/651703