에서 프로세스와 해당 하위 프로세스 만 모니터링하고 싶습니다 htop
. 상위 프로세스 이름을 필터링하면 하위 프로세스가 아닌 상위 프로세스 만 나열됩니다. 어린이 프로세스도 어떻게 표시합니까?
답변
Linux에서는 다음을 수행 할 수 있습니다.
htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`
$PID
루트 프로세스는 어디에 있습니까 ? 이것은 다음과 같이 작동합니다.
- PID로 원하는 프로세스 를 나열
pstree
하는-p
옵션을 사용하여 원하는 프로세스 목록을 얻습니다 . - 출력은 정규식 (여기서는
\((\d+)\)
)을 사용하여 PID를 검색하고 쉼표로 구분하여 출력 하는 Perl 스크립트로 파이프됩니다 . - 이 목록은의 인수로 제공됩니다
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에 전달하십시오.