「htop」が「ps」よりも多くのプロセスを表示するのはなぜですか?

「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よりも多くのプロセスを表示するのはなぜですか?

答え1

デフォルトでは、htopプロセスの各スレッドは個別にリストされますが、psそうではありません。スレッド表示をオフにするには、を押すHか、[設定/表示オプション]メニューの[ユーザースペーススレッドを非表示]を使用します。これにより、~/.htoprcorに次の行が入力されます~/.config/htop/htoprc(手動で入力することもできます)。

hide_userland_threads=1

hide_kernel_threads=1ボタンを押して切り替えることもできますが、Kデフォルトは1です。)

別の便利なオプションは、同じメニュー(highlight_threads=1in .htoprc)にある「異なる色でスレッドを表示する」です。このオプションを使用すると、スレッドは異なる色(デフォルトのテーマでは緑色)で表示されます。

ディスプレイの最初の行には、htop「Tasks:377、842 thr、161 kthr;」などの行があります。 2 Running". これは、実行可能状態のプロセス、ユーザー領域スレッド、カーネルスレッド、およびスレッドの総数を表示します。表示が消えます。

PIDフィールドとCPU関連フィールド(NIce値、CPU%、TIME +など)を除いて、すべての属性が共通する複数のプロセスを見ると、同じプロセス内のスレッドである可能性が高くなります。

答え2

私の現在のアーチLinuxシステムでは、ps xf私のユーザーIDが所有しているプロセスのみが表示されます。 htopすべてのプロセスを表示します。ps -efすべてのプロセスリストをインポートするか、子ps -ejH/親関係リストをインポートします。

答え3

htopは終了したプロセスも表示します。これは、一時プロセスとそのプロセスが消費できるリソースを特定するのに最適な機能です。 htopを終了して再起動すると、そのエントリが消えたことがわかります。再起動せずにhtopに履歴プロセスを削除させる方法を考えることができないため、方法があるかもしれません。

関連情報