Получить полное имя команды процесса с высоким использованием памяти в UNIX

Получить полное имя команды процесса с высоким использованием памяти в UNIX

Я пытаюсь захватить имя процесса, который использует большую память на моем компьютере. Я запустил следующую команду, чтобы получить это

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

Но проблема в том, что он не дает мне полных данных cmd, которые работают с PID. Вывод, который я получаю, такой:

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

Я хочу захватить полный cmd PID.

решение1

Я предполагаю, что под "полными сведениями о cmd" вы подразумеваете, включая список аргументов? Если так, попробуйте это ниже. Это даст вам до 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'

Связанный контент