Почему `htop` показывает больше процессов, чем` ps`

174

В 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?

Cheng
источник
1
superuser.com/questions/118086/… | stackoverflow.com/questions/11017597/… | askubuntu.com/questions/17047/…
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

Ответы:

249

По умолчанию htopперечисляет каждую нить процесса отдельно, а psнет. Чтобы отключить отображение потоков, нажмите Hили используйте меню «Настройка / Параметры отображения», «Скрыть темы пользователя». Это помещает следующую строку в ваш ~/.htoprcили ~/.config/htop/htoprc(вы можете поместить его там вручную):

hide_userland_threads=1

(Также hide_kernel_threads=1переключается нажатием K, но по умолчанию оно равно 1.)

Еще одна полезная опция - «Отображать темы в другом цвете» в том же меню ( highlight_threads=1in .htoprc), в результате чего темы отображаются в другом цвете (зеленый в теме по умолчанию).

В первой строке htopдисплея есть строка типа «Задачи: 377, 842 thr, 161 kthr; 2 бега ». Здесь показано общее количество процессов, потоков пользовательского пространства, потоков ядра и потоков в состоянии выполнения. Числа не меняются при фильтрации экрана, но индикации «thr» и «kthr» исчезают, когда вы отключаете включение потоков пользователя / ядра соответственно.

Когда вы видите несколько процессов, которые имеют все общие характеристики, кроме полей PID и CPU (значение NIce, CPU%, TIME +, ...), весьма вероятно, что они являются потоками в одном и том же процессе.

жилль
источник
Любая подсказка о том, почему это по умолчанию? Почему это актуально? Это похоже на добавление шума, но я думаю, что есть веская причина.
Tuxayo
0

Для меня в более-менее актуальной системе arch linux ps xfотображаются только процессы, принадлежащие моему идентификатору пользователя. htopпоказывает мне все процессы. Попробуйте ps -efполучить список всех процессов или, возможно, ps -ejHполучить список дочерних / родительских отношений.

Брюс Эдигер
источник