コマンドラインのマニュアル

Man » htop マニュアルオンライン - htop man ページの包括的なオンラインドキュメント

🌍
htop, pcp-htop - インタラクティブなプロセスビューア

概要

htop [-dCFhpustvH]
pcp-htop [-dCFhpustvH] [--host/-h host]

説明

htop は、クロスプラットフォームの ncurses ベースのプロセスビューアです。

top に似ていますが、垂直方向および水平方向にスクロールでき、ポインティングデバイス(マウス)を使用して対話できます。システムで実行されているすべてのプロセスとそのコマンドライン引数を観察したり、ツリー形式で表示したり、複数のプロセスを選択して同時に操作したりできます。

プロセスに関連するタスク(キル、優先度の変更)は、PID を入力せずに実行できます。

pcp-htop は、パフォーマンスコパイロット(PCP)メトリック API(PCPIntro(1)、PMAPI(3) を参照)を使用して構築された htop のバージョンであり、任意のメトリックから取得した値を htop に表示するように拡張できます。詳細については、以下に示す「設定ファイル」のセクションを参照してください。

コマンドラインオプション

長いオプションに必須の引数がある場合、短いオプションにも必須の引数が必要です。

-d --delay=DELAY
更新間の遅延(10分の1秒単位)。遅延値が 1 未満の場合、1 に増加します(つまり、1/10 秒)。遅延値が 100 より大きい場合、100 に減少します(つまり、10 秒)。

-C --no-color --no-colour
htop をモノクロモードで起動します。

-F --filter=FILTER
コマンドに一致する用語でプロセスをフィルタリングします。用語は、大文字と小文字を区別せず、固定文字列(正規表現ではない)として一致します。「|」で複数の用語を区切ることができます。

-h --help
ヘルプメッセージを表示して終了します。

-p --pid=PID,PID...
指定された PID のみを表示します。

-s --sort-key COLUMN
この列でソートします(列のリストについては、--sort-key help を使用してください)。これにより、-t を同時に指定しない限り、リストビューが強制されます。ツリーモードでのソートは、各プロセスの直接の子プロセスに適用されます。

-u --user[=USERNAME|UID]
特定のユーザー、または指定しない場合は現在のユーザーのプロセスのみを表示します。

-U --no-unicode
Unicode ではなく、ASCII 文字を使用してグラフメーターを表示します。

-M --no-mouse
マウス制御のサポートを無効にします。

--readonly
すべてのシステムおよびプロセス変更機能を無効にします。

-V --version
バージョン情報を出力して終了します。

-t --tree
プロセスをツリービューで表示します。-s でソート順を指定した場合に、ツリービューを強制するために使用できます。

-H --highlight-changes=DELAY
新しく追加または削除されたプロセスを強調表示します。

--drop-capabilities[=off|basic|strict]
Linux 専用。このオプションは、コンパイル時に有効になっている必要があり、実行時には libcap のサポートが必要です。
不要な Linux 機能の削除。厳密モードでは、キル、プロセス優先度の変更、プロセス遅延の集計情報の読み取りなどの機能は、保持される機能が少ないため、使用できなくなります。

インタラクティブコマンド

htopで利用可能なコマンドは以下の通りです。

Tab, Shift-Tab

表示する画面タブを選択(次へ/前へ)。画面タブ名をSetup画面(F2)で表示するように設定できます。

Up, Alt-k

プロセスリスト内の前のプロセスを選択(ハイライト)。必要に応じてリストをスクロールします。

Down, Alt-j

プロセスリスト内の次のプロセスを選択(ハイライト)。必要に応じてリストをスクロールします。

Left, Alt-h

プロセスリストを左にスクロールします。

Right, Alt-l

プロセスリストを右にスクロールします。

PgUp, PgDn

プロセスリストを1画面分上にスクロールします。

Home プロセスリストの先頭にスクロールし、最初のプロセスを選択します。

End  プロセスリストの末尾にスクロールし、最後のプロセスを選択します。

Ctrl-A, ^

プロセスのエントリ(行)の先頭までスクロールします。

Ctrl-E, $

プロセスのエントリ(行)の末尾までスクロールします。

Space

プロセスにタグを付けたり、タグを外したりします。複数のプロセスに対して適用できる「kill」などのコマンドは、タグが付けられたプロセスのリストに対して適用されます。

c    現在のプロセスとその子プロセスにタグを付けます。複数のプロセスに対して適用できる「kill」などのコマンドは、タグが付けられたプロセスのリストに対して適用されます。

U    すべてのプロセスからタグを削除します(Spaceまたはcキーで追加されたすべてのタグを削除します)。

s    プロセスのシステムコールをトレースします。strace(1)がインストールされている場合、このキーを押すと、選択したプロセスにstraceをアタッチし、プロセスによって発行されたシステムコールのライブアップデートを表示します。

l プロセスのオープンファイルを表示します。lsof(1)がインストールされている場合、このキーを押すと、プロセスによって開かれたファイル記述子のリストが表示されます。

w    選択したプロセスのコマンドラインを別の画面に表示し、必要に応じて複数行に分割します。

x    選択したプロセスの現在のアクティブなファイルロックを別の画面に表示します。

F1, h, ?

ヘルプ画面に移動します

F2, S

Setup画面に移動します。Setup画面では、画面上部に表示されるメーターを構成したり、さまざまな表示オプションを設定したり、カラーテーマを選択したり、表示する列とその順序を選択したりできます。

F3, /

表示されているすべてのプロセスのコマンドラインをインクリメンタルに検索します。入力するにつれて、現在選択されている(ハイライトされている)コマンドが更新されます。検索モードでは、F3を押すと一致する項目が順番に表示されます。Shift-F3を押すと、逆の順に表示されます。

あるいは、検索したいコマンドを入力することで検索を開始することもできますが、最初の文字については、通常のキーバインドが優先されます。

F4, \

インクリメンタルプロセスフィルタリング:プロセスのコマンドラインの一部を入力すると、その名前が一致するプロセスのみが表示されます。フィルタリングをキャンセルするには、もう一度Filterオプションに入力して、Escを押します。一致はケースインセンシティブで行われます。用語は固定文字列(正規表現ではありません)。複数の用語を「|」で区切ることができます。


F5, t

ツリー表示:プロセスを親子関係で整理し、その関係をツリーとして表示します。キーを切り替えることで、ツリー表示と以前選択したソート表示を切り替えることができます。ソート表示を選択すると、ツリー表示は終了します。

F6, <, >

ソートするフィールドを選択します。ヘッダーのハイライトで現在のソートフィールドが示されます。

F7, ]

選択されたプロセスの優先度を上げます('nice'値から減算します)。これはスーパーユーザーのみが行うことができます。

F8, [

選択されたプロセスの優先度を下げます('nice'値に加算します)。

Shift-F7, }

選択されたプロセスのautogroupの優先度を上げます(autogroupの'nice'値から減算します)。これはスーパーユーザーのみが行うことができます。

Shift-F8, {

選択されたプロセスのautogroupの優先度を下げます(autogroupの'nice'値に加算します)。

F9, k

「キル」プロセス:選択されたメニューの信号を、1つまたは複数のプロセスに送信します。プロセスがタグ付けされている場合、すべてのタグ付けされたプロセスに信号を送信します。タグ付けされていない場合、現在選択されているプロセスに送信します。

F10, q

終了

I

ソート順序を反転します:ソート順序が昇順の場合、降順に切り替えます。その逆も同様です。

+, -, *

ツリー表示モードの場合、サブツリーを展開または折りたたみます。サブツリーが折りたたまれている場合、プロセスの名前の左側に「+」記号が表示されます。 「*」キーを押すと、親を持たないPID(通常はPID 1(init)およびLinuxのPID 2(kthreadd)(カーネルスレッドが表示されている場合))の子プロセスをすべて展開または折りたたみます。

a(マルチプロセッサマシン上)

CPUアフィニティを設定します:プロセスが使用できるCPUを指定します。

u

特定のユーザーが所有するプロセスのみを表示します。

N

PIDでソートします。

M

メモリ使用量でソートします(top互換キー)。

P

プロセッサ使用量でソートします(top互換キー)。

T

時間でソートします(top互換キー)。

F

「フォロー」プロセス:ソート順序によって現在選択されているプロセスがリスト内で移動する場合、選択バーがそれを追跡します。これはプロセスの監視に役立ちます。この方法で、プロセスを常に画面に表示させることができます。移動キーが使用されると、「フォロー」の効果は失われます。

K

カーネルスレッドを非表示にします:カーネルに属するスレッドをプロセスリストに表示しないようにします(これは切り替えキーです)。

H

ユーザースレッドを非表示にします:最新のNPTLベースのシステムなど、システム上で通常とは異なる方法で表現されるスレッドを、ユーザースペースのプロセスのプロセスリストから非表示にします(これは切り替えキーです)。

O

コンテナ化されたプロセスを非表示にします:コンテナで実行されているプロセスをプロセスリストに表示しないようにします(これは切り替えキーです)。

p

可能な場合は、実行中のプログラムの完全なパスを表示します(これは切り替えキーです)。

Z

プロセス更新を一時停止/再開します。

m

可能な場合は、exe、comm、およびcmdlineをマージします(これは切り替えキーです)。

Ctrl-L リフレッシュ:画面を再描画し、値を再計算します。

数字 PID検索:プロセスIDを入力すると、選択されたハイライトがそのプロセスに移動します。


コラム

次のコラムは、各プロセスに関するデータを表示できます。すべての行に「-」という値が表示されている場合は、そのコラムがシステムでサポートされていないか、htopで現在実装されていないことを示します。以下に示される名前は、「利用可能なコラム」セクションのセットアップ画面で使用される名前です。htopのメイン画面に異なる名前が表示されている場合は、括弧内に示されます。

Command プロセスの完全なコマンドライン(つまり、プログラム名と引数)。

「exe、comm、cmdline を Command に統合」オプション(「m」キーで切り替え)が有効になっている場合、実行可能パス(/proc/[pid]/exe)とコマンド名(/proc/[pid]/comm)もコマンドラインと統合して表示されます(利用可能な場合)。

プログラムの基本名は、設定されている場合は強調表示されます。また、古い実行可能ファイルに対して追加の強調表示を設定できます(「EXE」コラムを参照)。

「Command」コラムは、各画面の最後のコラムになるようにする必要があります。これは、非常に長くなる可能性があり、長さを動的に拡張できるようにすると効果的です。

COMM プロセスから読み取れる場合、/proc/[pid]/comm から取得したコマンド名。

Linux カーネル 2.6.33 以降が必要です。

EXE 読み取り可能な場合、/proc/[pid]/exe から取得したプロセスの実行可能ファイルの省略された基本名。htop は、Linux ではすべてのプロセスに対してこのファイルを読み取ることができますが、CAP_SYS_PTRACE または root 権限が必要です。

基本名が赤でマークされている場合は、プロセスが開始されてから、プロセスを実行するために使用された実行可能ファイルがディスク上で置き換えまたは削除されたことを示します。この情報は、/proc/[pid]/exe の内容を処理することで取得されます。

さらに、基本名が黄色でマークされている場合は、ロードされてからディスク上で置き換えまたは削除されたライブラリが 1 つ以上存在することを示します。この情報は、/proc/[pid]/maps の内容を処理することで取得されます。

色を決定する際には、メインの実行可能ファイルの置き換えが、他のライブラリの置き換えよりも常に優先されます。メインの実行可能ファイルの置き換えがメモリマップにのみ示されている場合、これは他のライブラリが置き換えまたは削除された場合と同じように表示されます。

この追加の色のマークは、セットアップ画面の「表示オプション」セクションで設定できます。

EXE の表示には、CAP_SYS_PTRACE と PTRACE_MODE_READ_FSCRED が必要です。

PID プロセス ID。

STATE (S)
プロセスの状態:
S:スリープ状態
I:アイドル状態(スリープ状態よりも長い非アクティブ状態、区別できるプラットフォームの場合)
R:実行中
D:ディスクスリープ(中断不可能)
Z:ゾンビ(親プロセスが終了ステータスを読み取るのを待機中)
T:トレースまたは中断(例:SIGTSTP による)
W:ページング

PPID 親プロセス ID。

PGRP プロセスのグループ ID。

SESSION (SID)

プロセスのセッション ID。

TTY プロセスの制御ターミナル。

TPGID

制御ターミナルのフォアグラウンドプロセスグループのプロセス ID。

MINFLT

メインメモリで発生したページフォールトの数。

CMINFLT

プロセスが待機している子プロセスについて発生したマイナーフォールトの数(上記を参照)。


MAJFLT

メインメモリ外で発生したページフォールトの数。

CMAJFLT

プロセスが待機している子プロセスのメジャーフォールトの数(上記参照)。

UTIME (UTIME+)

プロセスがCPU上でユーザーモードで実行した時間の合計(クロックティック単位)。

STIME (STIME+)

カーネルがプロセスに代わってシステムコールを実行した時間の合計(クロックティック単位)。

CUTIME (CUTIME+)

プロセスが待機している子プロセスがユーザーモードで実行した時間の合計(上記参照)。

CSTIME (CSTIME+)

カーネルがプロセスが待機しているすべての子プロセスのためにシステムコールを実行した時間の合計(上記参照)。

PRIORITY (PRI)

カーネルがプロセスに割り当てる内部優先度。通常は、nice値に20を加えたもの。リアルタイムプロセスでは異なる。

NICE (NI)

プロセスのnice値。19(低い優先度)から-20(高い優先度)の範囲。高い値は、プロセスが他のプロセスに優先度を与えることを意味する。OSの通常の優先度の調整に関する制限が適用される。

STARTTIME (START)

プロセスが開始された時刻。

PROCESSOR (CPU)

プロセスが最後に実行されたCPUのID。

M_VIRT (VIRT)

プロセスの仮想メモリのサイズ。

M_RESIDENT (RES)

プロセスのレジデントセットサイズ(テキスト + データ + スタック)。つまり、プロセスが使用している物理メモリのサイズ。

M_SHARE (SHR)

プロセスの共有ページのサイズ。

M_TRS (CODE)

プロセスのテキストレジデントセットサイズ。つまり、プロセスの実行可能コードのサイズ。

M_DRS (DATA)

プロセスのデータレジデントセットサイズ(データ + スタック)。つまり、プロセスの実行可能コード以外の部分のサイズ。

M_LRS (LIB)

プロセスのライブラリサイズ。

M_SWAP (SWAP)

プロセスがスワップアウトしたページのサイズ。

M_PSS (PSS)

プロポーショナルセットサイズ。M_RESIDENTと同じだが、各ページを共有しているプロセスの数で割った値。

M_M_PSSWP (PSSWP)

このマッピングのプロポーショナルスワップシェア。M_SWAPとは異なり、基になる共有メモリオブジェクトのスワップアウトされたページは考慮されない。

ST_UID (UID)

プロセスの所有者のユーザーID。

PERCENT_CPU (CPU%)

プロセスが現在使用しているCPU時間の割合。これはLinuxでCPU使用率を表す標準的な方法。各プロセスは最大100%のCPU時間を使用でき、これはプロセスが実行されているコアの完全な容量を意味する。これは、top(1)で「Irixモード」と呼ばれることもある。

PERCENT_NORM_CPU (NCPU%)

プロセスが現在使用しているCPU時間の割合を、CPU数で正規化した値。これは、top(1)で「Solarisモード」と呼ばれることもある。

PERCENT_MEM (MEM%)

プロセスが現在使用しているメモリの割合(プロセスのレジデントメモリサイズに基づき、上記参照)。


USER プロセスの所有者のユーザー名、または名前が判別できない場合はユーザー ID。

Linux では、プロセスが特権昇格された場合(ファイル機能が設定または保持されたバイナリから開始された場合、または root ユーザーから切り替えた後にアンビエントセットを介して Linux 機能が保持された場合)に、ユーザー名が強調表示されます。

TIME (TIME+)
プロセスがユーザー時間とシステム時間(UTIME、STIME を参照)に費やした時間を、クロックティック単位で計測した値。

NLWP プロセス内の軽量プロセス(スレッド)の数。

TGID スレッドグループ ID。

CTID OpenVZ コンテナー ID、別名仮想環境 ID。

VPID OpenVZ プロセス ID。

VXID VServer プロセス ID。

RCHAR (RD_CHAR)
プロセスが読み取ったバイト数。

WCHAR (WR_CHAR)
プロセスが書き込んだバイト数。

SYSCR (RD_SYSC)
プロセスに対する read(2) システムコールの数。

SYSCW (WR_SYSC)
プロセスに対する write(2) システムコールの数。

RBYTES (IO_RBYTES)
プロセスに対する read(2) I/O のバイト数。

WBYTES (IO_WBYTES)
プロセスに対する write(2) I/O のバイト数。

CNCLWB (IO_CANCEL)
キャンセルされた write(2) I/O のバイト数。

IO_READ_RATE (DISK READ)
プロセスに対する read(2) の I/O レート(1 秒あたりのバイト数)。

IO_WRITE_RATE (DISK WRITE)
プロセスに対する write(2) の I/O レート(1 秒あたりのバイト数)。

IO_RATE (DISK R/W)
I/O レート。IO_READ_RATE + IO_WRITE_RATE(上記参照)。

CGROUP
プロセスが属する cgroup。短縮表示については、CCGROUP 列を参照してください。

CCGROUP
プロセスが属する cgroup 名の短縮表示。パターンベースの置換を実行して表示文字列を短縮し、情報を凝縮します。
/*.slice は /[S] に短縮されます(以下に例外を示します)
/system.slice は /[S] に短縮されます
/user.slice は /[U] に短縮されます
/user-*.slice は /[U:*] に短縮されます(/[U] の直前に挿入されます)
/machine.slice は /[M] に短縮されます
/machine-*.scope は /[SNC:*] に短縮されます(SNC:systemd nspawn コンテナー)、大文字でモニターを表します
/lxc.monitor.* は /[LXC:*] に短縮されます
/lxc.payload.* は /[lxc:*] に短縮されます
/*.scope は /!* に短縮されます
/*.service は /* に短縮されます(サフィックスを削除します)

systemd からの cgroup 名に含まれるエスケープシーケンスはデコードされません。

OOM OOM キラーのスコア。

CTXT ボランタリーおよび非ボランタリーコンテキストスイッチの累積値。

IO_PRIORITY (IO)
I/O スケジューリングクラスと、クラスがサポートしている場合は優先度。
R:リアルタイム
B:ベストエフォート
id:アイドル

PERCENT_CPU_DELAY (CPUD%)
CPU を待機している時間の割合(実行可能状態)。CAP_NET_ADMIN が必要です。

PERCENT_IO_DELAY (IOD%)
同期ブロック I/O の完了を待機している時間の割合。CAP_NET_ADMIN が必要です。

PERCENT_SWAP_DELAY (SWAPD%)
ページをスワップインしている時間の割合。CAP_NET_ADMIN が必要です。

AGRP プロセスの自動グループ識別子。Linux CFS が有効になっている必要があります。

ANI プロセスのautogroupに適用される、自動グループの優先度値です。Linux CFSが有効になっている必要があります。

その他のフラグ 現在はサポートされていません(常に「-」と表示されます)。

外部ライブラリ

htopは、ビルド時に使用するほとんどのライブラリに依存していますが、2つの注目すべき例外があります。これらの例外はどちらも、htopのヘッダーに表示されるメーターに表示されるデータに関連しており、意図的にオプションの実行時依存関係として作成されました。これらの例外は以下に説明します。

libsystemd

libsystemdのバインディングは、SystemDメーターで使用され、アクティブなサービスの数とシステム全体のステータスを決定します。これらの情報を実行時に確認する機能を探すことで、これらのメーターをサポートするためにパッケージマネージャーがこれらのライブラリを、それ以外の場合はsystemdを使用しないシステムにインストールすることを強制することなく、ビルドをサポートできます。

要約:ビルド時の依存関係はありません。libsystemdを動的ローディングを通じてオプションの実行時依存関係として使用します。[systemctl]({filename}../../systemctl)(1)によるフォールバックも利用可能です。

libsensors

libsensorsのバインディングは、CPU使用率メーターのCPU温度表示を有効にした場合に、CPU温度の読み取りに使用されます。ただし、htopがこれらの温度を正しく表示するためには、libsensorsの通常の構成ファイルを通じて適切な構成がなされ、すべてのCPUコアがcoretempドライバの温度センサーに対応し、コア0が「Core 0」というラベルのセンサーに対応している必要があります。パッケージ温度は「Package id 0」として与えられます。見つからない場合は、利用可能な各コアの読み取り値から推測されます。

要約:libsensors(3) Cヘッダーファイルに対するビルド時の依存関係、libsensors(3)を動的ローディングを通じてオプションの実行時依存関係として使用します。

構成ファイル

デフォルトでは、htopはXDGに準拠したパスである~/.config/htop/htoprcから構成を読み取ります。構成ファイルは、htopのプログラム内Setup構成によってクリーンな終了時に上書きされるため、手動で編集しないでください。ユーザー構成が存在しない場合、htopはまず/etc/htoprcからシステム全体の構成を読み取り、最後にハードコードされたデフォルトにフォールバックします。

構成ファイルの場所を$HTOPRC環境変数を使用してオーバーライドできます(たとえば、同じホームディレクトリを共有する複数のマシンに対して複数の構成を持つことができます)。

pcp-htopユーティリティは、htoprcを同様の方法で使用します。ただし、pcp-htopは、htopとpcp-htopの両方をインストールして使用する場合に、パフォーマンス・コパイロット・ツールによってより一般的に使用されるパスである~/.pcp/htop/htoprcから構成を読み取って、個別の構成を提供します。pcp-htopは、Setup画面(F2)を介して、新しいメーター、列、および画面タブを追加できるように、同じディレクトリの下に配置された追加の構成ファイルをサポートします。これにより、各メーター、列、または画面構成ファイルに対して、利用可能な追加のメーター、利用可能な列、および画面タブが表示されます。

これらの pcp-htop 構成ファイルは、起動時に一度読み込まれます。 ファイルの形式については、pcp-htop(5) のマニュアルページで詳細に説明されています。

この機能により、pcp-htop で表示するために数千ものパフォーマンス・コパイロット・メトリックが利用できるようになり、個々のサイトで追加されたカスタム・メトリックを表示することもできます。 OpenMetrics 形式 (https://openmetrics.io) を使用して計測されたアプリケーションおよびサービスは、pmdaopenmetrics(1) コンポーネントが構成されている場合、pcp-htop で表示できます。

htop と pcp-htop の両方の構成は、正常に終了した場合にのみ保存されます。 任意のシグナルを送信すると、すべての構成の変更が失われます。

メモリサイズ

htop のメモリサイズは、人間が読みやすい形式で表示されます。 サイズは、2 のべき乗で、バイナリ IEC 単位で印刷されます。 単位の接尾辞が表示されていない場合、単位は暗黙的に K であり、これは KiB (キビバイト、1 KiB = 1024 バイト) を意味します。

この規則を採用したのは、画面スペースを節約し、メモリサイズの表示を htop 全体で一貫性のあるものにするためです。 メモリ割り当ては、通常、完全なメモリページ (ほとんどのプラットフォームで 4 KiB) の単位で行われます。

関連項目

proc(5), top(1), free(1), ps(1), uptime(1) および limits.conf(5)。

PCP の関連項目

pmdaopenmetrics(1), PCPIntro(1), PMAPI(3), および pcp-htop(5)。

著者

htop はもともとヒシャム・ムハンマドによって開発されました。 現在は、<_> のコミュニティによって維持されています。

pcp-htop は、<> と <> のコミュニティ間の共同作業として維持されており、パフォーマンス・コパイロット・ツールのスイートの一部です。

著作権

Copyright © 2004-2019 Hisham Muhammad。 Copyright © 2020-2025 htop 開発チーム。

ライセンス: GPLv2+: GNU General Public License バージョン 2、またはそれ以降の任意のバージョン。

これはフリーソフトウェアです。 変更して再配布することができます。 法律で許可されている範囲で、保証は一切ありません。