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
」と入力します ターミナルで。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。