[unix] htop에 프로세스와 해당 하위 프로세스 만 표시하는 방법은 무엇입니까?

에서 프로세스와 해당 하위 프로세스 만 모니터링하고 싶습니다 htop. 상위 프로세스 이름을 필터링하면 하위 프로세스가 아닌 상위 프로세스 만 나열됩니다. 어린이 프로세스도 어떻게 표시합니까?



답변

Linux에서는 다음을 수행 할 수 있습니다.

htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`

$PID루트 프로세스는 어디에 있습니까 ? 이것은 다음과 같이 작동합니다.

  1. PID로 원하는 프로세스 를 나열 pstree하는 -p옵션을 사용하여 원하는 프로세스 목록을 얻습니다 .
  2. 출력은 정규식 (여기서는 \((\d+)\))을 사용하여 PID를 검색하고 쉼표로 구분하여 출력 하는 Perl 스크립트로 파이프됩니다 .
  3. 이 목록은의 인수로 제공됩니다 htop -p.

Mac OS와 같은 다른 OS의 경우 PID를 검색하는 정규식을 조정해야 할 수도 있습니다.

참고 : 불행히도 나중에 생성 된 새 자식으로 목록을 업데이트하는 것은 불가능합니다. 한 번 htop실행 된 후에 는 다른 작업을 수행 할 수 없기 때문입니다. 이것은 htop(현재 버전 : 2.0.2) 의 한계입니다 .


답변

htop -p $(ps -ef | awk -v proc=15305 '$3 == proc { cnt++;if (cnt == 1) { printf "%s",$2 } else { printf ",%s",$2 } }')

awk를 사용하여 ps -ef의 출력에서 ​​쉼표로 구분 된 프로세스 ID 목록을 작성하여 상위 프로세스 ID를 proc로 전달한 다음 htop -p에 전달하십시오.


답변