Linuxマシンで作業している場合、現在実行されているプロセスを確認する必要がある場合があります。 psを使用して、実行中のプロセスに関する情報を検索するために使用できるコマンドがいくつかあります。 およびtop 最も一般的に使用されるものです。
この記事では、pstreeについて説明します。 指図。 psに似ています 、ただし、実行中のプロセスを一覧表示する代わりに、ツリーに表示します。ツリーのような形式は、プロセス階層を表示するためのより便利な方法であり、出力をより視覚的に魅力的にします。
pstreeの使用方法 コマンド#
pstreeの一般的な構文 コマンドは次のとおりです:
ps [OPTIONS] [USER or PID]
オプションや引数なしで呼び出された場合の最も単純な形式では、pstree 実行中のすべてのプロセスの階層ツリー構造を表示します:
pstree systemd─┬─VBoxService───7*[{VBoxService}]
├─accounts-daemon───2*[{accounts-daemon}]
├─2*[agetty]
├─atd
├─cron
├─dbus-daemon
├─irqbalance───{irqbalance}
├─2*[iscsid]
├─lvmetad
├─lxcfs───2*[{lxcfs}]
├─networkd-dispat───{networkd-dispat}
├─nginx───2*[nginx]
...
ツリーのトップ/ルートアイテムは、すべてのシステムプロセスの親プロセスです。この例では、systemd 、これは起動時に開始する最初のプロセスです。
pstree 同一のブランチを角かっこで囲み、ブランチの数を表す整数をプレフィックスとして付けてマージします。これにより、出力がより読みやすく、視覚的に魅力的になります。
以下は、角かっこがどのように使用されるかを示す例です。
├─2*[agetty]
と同じです:
├─agetty
├─agetty
同一のブランチのマージを無効にするには、-cを使用します オプション:
pstree -c プロセスのスレッドは親プロセスの下に表示され、中括弧内にプロセス名を使用して表示されます。次に例を示します:
├─lxcfs───2*[{lxcfs}]
-tを使用します 完全なスレッド名を表示するオプション。スレッドを非表示にしてプロセスのみを表示する場合は、-Tを使用します オプション。
通常、pstree 画面に収まらない出力の多くの行を表示します。出力を一度に1ページずつ表示するには、出力をlessにパイプします コマンド:
pstree | less
ユーザー名が引数として指定されている場合、pstree そのユーザーが所有するプロセスのみを表示します。たとえば、次のコマンドは、「linuxize」という名前のユーザーによって開始されたプロセスのみを表示します。
pstree linuxize
PIDが引数として指定されている場合、pstree 指定されたプロセスをツリーのルートとして持つツリーを表示します。次に例を示します:
pstree 1943 sshd───bash───pstree
特定のプロセスの親プロセスを表示するには、-sを使用します オプションの後にプロセスPIDが続く:
pstree -s 1943 systemd───sshd───sshd───bash───pstree
PIDとPGIDを表示する#
通常、pstreeを実行する場合 コマンドの場合、ユーザーが探している最も重要な情報はプロセスIDです。たとえば、PIDを知っていると、誤動作しているプロセスを強制終了できます。
-p オプションはpstreeに指示します PIDを表示するには:
pstree -p PIDは、各プロセスまたはスレッドの後に括弧内に表示されます。
systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956)
│ ├─{VBoxService}(957)
│ ├─{VBoxService}(958)
│ ├─{VBoxService}(959)
│ ├─{VBoxService}(960)
│ ├─{VBoxService}(961)
│ └─{VBoxService}(962)
...
デフォルトでは、pstree 、同じ親を持つプロセスを名前で並べ替えます。 -n オプションはpstreeに指示します 数値の並べ替えを使用するには、つまりPIDで並べ替えます:
pstree -pn
プロセスグループIDまたはPGIDは、プロセスグループの最初のメンバーのプロセスIDです。 PGIDを表示するには、-gを使用します オプション:
pstree -g PIDは、各プロセスまたはスレッドの後に括弧内にも表示されます。
systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ └─{VBoxService}(954)
...
PIDまたはPGIDが表示されている場合、マージは暗黙的に無効になっています。
コマンドライン引数を表示する#
一部のプログラムは、コマンドライン引数として指定された構成オプションを使用して呼び出すことができます。
デフォルトでは、pstree 実行中のプロセスのコマンドライン引数は表示されません。プロセスがどのように開始されたかを表示するには、コマンドを-aと一緒に使用します オプション:
pstree -a ...
├─agetty -o -p -- \\u --keep-baud 115200,38400,9600 ttyS0 vt220
├─agetty -o -p -- \\u --noclear tty1 linux
...
ハイライト#
pstree また、プロセスを強調して視覚的に表現することもできます。
-h オプションはpstreeに指示します 現在のプロセスとそのすべての祖先を強調します。
pstree -h
特定のプロセスを強調表示するには、-Hを使用します オプションの後にプロセスIDが続く:
pstree -H PID_NUMBER 強調表示がサポートされていない場合、コマンドはエラーで終了します。
結論#
pstree コマンドは、実行中のプロセスをツリー構造の形式で表示します。
利用可能なすべてのpstreeについての情報 オプション、「man pstree」と入力します ターミナルで。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。