Por que o `htop` mostra mais processos que o` ps`

Respostas:

249

Por padrão, htoplista cada thread de um processo separadamente, enquanto psnão. Para desativar a exibição de linhas, pressione Hou use o menu "Opções de configuração / exibição", "Ocultar linhas do usuário". Isso coloca a seguinte linha no seu ~/.htoprcou ~/.config/htop/htoprc(você pode colocá-la lá manualmente):

hide_userland_threads=1

(Além disso hide_kernel_threads=1, alterne pressionando K, mas é 1 por padrão.)

Outra opção útil é “Exibir linhas em uma cor diferente” no mesmo menu ( highlight_threads=1pol .htoprc), o que faz com que as linhas sejam mostradas em uma cor diferente (verde no tema padrão).

Na primeira linha da htoptela, há uma linha como “Tarefas: 377, 842 thr, 161 kthr; 2 correndo ”. Isso mostra o número total de processos, threads do mundo do usuário, threads do kernel e threads em um estado executável. Os números não mudam quando você filtra a exibição, mas as indicações “thr” e “kthr” desaparecem quando você desativa a inclusão de threads de usuário / kernel, respectivamente.

Quando você vê vários processos que têm todas as características em comum, exceto os campos relacionados ao PID e à CPU (valor NIce, CPU%, TIME +, ...), é altamente provável que eles sejam threads no mesmo processo.

Gilles
fonte
Alguma pista sobre por que esse é o padrão? Por que isso é relevante? Parece adicionar ruído, mas acho que há uma boa razão.
Tuxayo
0

Para mim, em um sistema arch linux mais ou menos atual, ps xfmostra-me apenas os processos pertencentes ao meu ID de usuário. htopme mostra todos os processos. Tente ps -efobter uma lista de todos os processos ou talvez ps -ejHobter uma lista de relacionamento filho / pai.

Bruce Ediger
fonte