为什么“ 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多?


Answers:


248

默认情况下,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跑步”。这显示了进程,用户级线程,内核线程和处于可运行状态的线程的总数。过滤显示时,数字不会改变,但是分别关闭用户/内核线程的包含时,“ thr”和“ kthr”指示消失。

当您看到多个进程具有除PID和与CPU相关的字段(NIce值,CPU%,TIME +,...)以外的所有共同特征时,很可能它们是同一进程中的线程。


关于为什么这是默认值的任何线索?为什么如此重要?似乎增加了噪音,但我想这是有充分理由的。
tuxayo

0

对我来说,在当前或多或少的Arch Linux系统上,ps xf仅向我显示用户ID拥有的进程。 htop向我展示了所有过程。尝试ps -ef获取所有进程的列表,或者ps -ejH获取子/父关系列表。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.