获取 UNIX 中高内存使用进程的完整命令名

获取 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 的完整命令。

答案1

我假设“完整的 cmd 详细信息”是指包括 arg 列表?如果是这样,请尝试下面这个。它将为您提供最多 100 个字符宽的 CMD 列。您可以根据需要进行调整。

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

答案2

您可以随时使用顶部带开关的命令来操作输出:

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

相关内容