Shell
獲取 UNIX 中高記憶體使用程序的完整命令名
我正在嘗試擷取在我的盒子上使用高記憶體的程序名稱。我執行下面的命令來得到它
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'