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 세부 정보"는 인수 목록을 포함하는 것을 의미한다고 가정합니까? 그렇다면 이것을 시도해보십시오. 최대 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'

관련 정보