Pourquoi `htop` affiche-t-il plus de processus que` ps`?

175

Dans 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                                        

Dans htop, cela se présente comme: htop montrant plusieurs lignes unicorn_rails

Pourquoi htop affiche-t-il plus de processus que ps?

Cheng
la source

Réponses:

250

Par défaut, htopchaque thread d'un processus est répertorié séparément, alors que ce psn'est pas le cas. Pour désactiver l'affichage des fils, appuyez sur Hou utilisez le menu "Options d'installation / Afficher", "Masquer les fils de l'utilisateur". Ceci met la ligne suivante dans votre ~/.htoprcou ~/.config/htop/htoprc(vous pouvez aussi la placer manuellement):

hide_userland_threads=1

(Également hide_kernel_threads=1, basculez en appuyant sur K, mais c'est 1 par défaut.)

Une autre option utile est «Afficher les discussions dans une couleur différente» dans le même menu ( highlight_threads=1in .htoprc), qui permet d'afficher les discussions dans une couleur différente (vert dans le thème par défaut).

Dans la première ligne de l' htopaffichage, il y a une ligne du type «Tasks: 377, 842 thr, 161 kthr; 2 en cours d'exécution ». Cela indique le nombre total de processus, de threads utilisateur, de threads du noyau et de threads exécutables. Les nombres ne changent pas lorsque vous filtrez l'affichage, mais les indications «thr» et «kthr» disparaissent lorsque vous désactivez l'inclusion des threads utilisateur / noyau, respectivement.

Lorsque vous voyez plusieurs processus ayant toutes les caractéristiques en commun, à l'exception des champs PID et liés à la CPU (valeur NIce,% CPU, TIME +, ...), il est fort probable qu'ils soient des threads du même processus.

Gilles
la source
Une idée sur pourquoi c'est la valeur par défaut? Pourquoi est-ce pertinent? Cela semble ajouter du bruit, mais je suppose qu’il ya une bonne raison.
Tuxayo
0

Pour moi, sur un système Linux plus ou moins actuel, ps xfne me montre que les processus appartenant à mon ID utilisateur. htopme montre tous les processus. Essayez d’ ps -efobtenir une liste de tous les processus, ou peut-être ps -ejHd’obtenir une liste des relations enfant / parent.

Bruce Ediger
la source