"htop"이 "ps"보다 더 많은 프로세스를 표시하는 이유는 무엇입니까?

"htop"이 "ps"보다 더 많은 프로세스를 표시하는 이유는 무엇입니까?

존재하다ps xf

26395 pts/78   Ss     0:00  \_ bash
27016 pts/78   Sl+    0:04  |   \_ unicorn_rails master -c config/unicorn.rb                                           
27042 pts/78   Sl+    0:00  |       \_ unicorn_rails worker[0] -c config/unicorn.rb                                        

그 안에는 htop다음과 같이 나타납니다: htop은 여러 unicorn_rails 행을 표시합니다.

htop이 ps보다 더 많은 프로세스를 표시하는 이유는 무엇입니까?

답변1

기본적으로 htop프로세스의 각 스레드는 개별적으로 나열되지만 ps그렇지 않습니다. 스레드 표시를 끄려면 을 누르 H거나 설정/표시 옵션 메뉴에서 사용자 공간 스레드 숨기기를 사용하십시오. 그러면 ~/.htoprcor 에 다음 줄이 입력됩니다 ~/.config/htop/htoprc(수동으로 입력할 수도 있음).

hide_userland_threads=1

( hide_kernel_threads=1버튼을 눌러 전환 할 수도 있지만 K기본값은 1입니다.)

또 다른 유용한 옵션은 동일한 메뉴( highlight_threads=1in .htoprc)에 있는 "다른 색상으로 스레드 표시"입니다. 이 옵션을 사용하면 스레드가 다른 색상(기본 테마에서는 녹색)으로 표시됩니다.

디스플레이의 첫 번째 줄에는 htop"Tasks: 377, 842 thr, 161 kthr;"과 같은 줄이 있습니다. 2 Running". 이는 실행 가능한 상태의 프로세스, 사용자 영역 스레드, 커널 스레드 및 스레드의 총 수를 표시합니다. 표시를 필터링하면 숫자가 변경되지 않지만 각각 사용자/커널 스레드 포함을 끄면 "thr" 및 "kthr" 표시가 사라집니다.

PID 및 CPU 관련 필드(NIce 값, CPU%, TIME+ 등)를 제외하고 모든 특성이 공통된 여러 프로세스를 보면 동일한 프로세스에 있는 스레드일 가능성이 높습니다.

답변2

나의 현재 아치 Linux 시스템에서는 ps xf내 사용자 ID가 소유한 프로세스만 표시됩니다. htop모든 프로세스를 표시합니다. ps -ef모든 프로세스 목록을 가져오거나 하위 ps -ejH/상위 관계 목록을 가져오십시오.

답변3

htop은 종료된 프로세스도 표시합니다. 이는 임시 프로세스와 해당 프로세스가 소비할 수 있는 리소스를 확인할 수 있는 훌륭한 기능입니다. htop을 종료하고 다시 시작하면 해당 항목이 사라진 것을 볼 수 있습니다. 재부팅하지 않고 htop이 기록 프로세스를 삭제하도록 하는 방법을 생각할 수 없으므로 방법이 있을 수도 있습니다.

관련 정보