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がpsより多くのプロセスを表示するのはなぜですか?
デフォルトでは、htop
はプロセスの各スレッドを個別にリストしますが、ps
はリストしません。スレッドの表示をオフにするには、H
を押すか、[設定/表示オプション]メニューの[ユーザーランドスレッドを非表示]を使用します。これにより、次の行が~/.htoprc
または~/.config/htop/htoprc
(手動で配置することもできます):
hide_userland_threads=1
(またhide_kernel_threads=1
、K
を押すことで切り替えられますが、デフォルトでは1です)。
別の便利なオプションは、同じメニューの「スレッドを別の色で表示する」(highlight_threads=1
in .htoprc
)、スレッドを別の色(デフォルトのテーマでは緑)で表示します。
htop
表示の1行目には、「タスク:377、842 thr、161 kthr; 2実行中」。これは、プロセス、ユーザーランドスレッド、カーネルスレッド、および実行可能な状態のスレッドの総数を示します。表示をフィルタリングしても数値は変化しませんが、ユーザー/カーネルスレッドの組み込みをそれぞれオフにすると、「thr」と「kthr」の表示が消えます。
PIDとCPU関連のフィールド(Nice値、CPU%、TIME +など)を除くすべての特性が共通する複数のプロセスが表示される場合、それらは同じプロセス内のスレッドである可能性が高いです。
私にとって、多かれ少なかれ現在のArch Linuxシステムでは、ps xf
はユーザーIDが所有するプロセスのみを表示します。 htop
はすべてのプロセスを表示します。すべてのプロセスのリストについてはps -ef
を試してください。または、子/親関係のリストを取得するにはps -ejH
を試してください。
htopは、終了したプロセスも示しています。これはすばらしいので、短期間のプロセスと、それらが消費した可能性のあるリソースを確認できます。 htopを終了して再起動すると、それらが消えていることがわかります。再起動せずにhtopに履歴プロセスをドロップさせる方法がわからないので、方法があるかもしれません。