it-swarm-eu.dev

Proč `htop` zobrazuje více procesů než` ps`

V 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                                        

V htop se zobrazuje jako: htop showing multiple Unicorn_Rails lines

Proč htop vykazuje více procesů než ps?

195
Cheng

Ve výchozím nastavení htop uvádí každé vlákno procesu samostatně, zatímco ps nikoli. Chcete-li vypnout zobrazení podprocesů, stiskněte H, nebo použijte nabídku "Nastavení/Možnosti zobrazení", "Skrýt podprocesy uživatelské země". Tím vložíte do svého ~/.htoprc nebo ~/.config/htop/htoprc (můžete je tam umístit ručně):

hide_userland_threads=1

(Taky hide_kernel_threads=1, přepnuto stisknutím K, ale ve výchozím nastavení je to 1).

Další užitečnou možností je „Zobrazit vlákna v jiné barvě“ ve stejné nabídce (highlight_threads=1 v .htoprc), což způsobí, že se vlákna zobrazí v jiné barvě (zelená ve výchozím motivu).

Na prvním řádku displeje htop je řádek jako „Úkoly: 377, 842 thr, 161 kthr; 2 běží “. Ukazuje celkový počet procesů, podprocesů uživatelských vláken, vláken jádra a vláken ve spuštěném stavu. Čísla se nemění, když filtrujete displej, ale indikace „thr“ a „kthr“ zmizí, když vypnete zahrnutí vláken uživatelů/jader.

Když vidíte více procesů, které mají společné všechny vlastnosti kromě polí souvisejících s PID a CPU (pěkná hodnota, CPU%, TIME +, ...), je vysoce pravděpodobné, že se jedná o vlákna ve stejném procesu.

Pro mě na více či méně současném systému Arch Linux, ps xf zobrazuje pouze procesy vlastněné mým ID uživatele. htop zobrazuje všechny procesy. Snaž se ps -ef pro seznam všech procesů, nebo možná ps -ejH získat seznam vztah dítě/rodič.

1
Bruce Ediger

htop také ukazuje procesy, které skončily. To je skvělé, takže můžete vidět krátkodobé procesy a zdroje, které by mohly spotřebovat. Pokud ukončíte program htop a restartujete jej, uvidíte, že zmizeli. Nedokážu vymyslet způsob, jak přinutit historické procesy htop drop bez restartu, takže možná existuje cesta.

0
MikeB