![UNIX에서 높은 메모리 사용량 프로세스의 전체 명령 이름 가져오기](https://rvso.com/image/191771/UNIX%EC%97%90%EC%84%9C%20%EB%86%92%EC%9D%80%20%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EC%82%AC%EC%9A%A9%EB%9F%89%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%9D%98%20%EC%A0%84%EC%B2%B4%20%EB%AA%85%EB%A0%B9%20%EC%9D%B4%EB%A6%84%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0.png)
내 상자에서 높은 메모리를 사용하고 있는 프로세스 이름을 캡처하려고 합니다. 나는 그것을 얻기 위해 아래 명령을 실행했습니다.
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를 캡처하고 싶습니다.
답변1
"전체 cmd 세부 정보"란 인수 목록을 포함한다는 뜻인가요? 그렇다면 아래에서 시도해 보세요. CMD 열의 너비는 최대 100자까지 제공됩니다. 필요에 따라 조정할 수 있습니다.
ps -eo pid,ppid,cmd:100,%mem,%cpu --sort=-%mem | head
답변2
당신은 항상 사용할 수 있습니다맨 위출력을 조작하기 위한 스위치가 있는 명령:
top -b -c -n 1 -o +%MEM | sed -n '7,17p'