Почему `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?

131 голос | спросил Cheng 31 MarpmThu, 31 Mar 2011 14:48:08 +04002011-03-31T14:48:08+04:0002 2011, 14:48:08

2 ответа


187

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

hide_userland_threads=1

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

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

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

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

ответил Gilles 1 AMpFri, 01 Apr 2011 00:06:20 +040006Friday 2011, 00:06:20
0

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

ответил Bruce Ediger 31 MarpmThu, 31 Mar 2011 22:22:19 +04002011-03-31T22:22:19+04:0010 2011, 22:22:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132