【Linux入門】pstree コマンド:プロセスの親子情報を表示する
コマンドの概要
「pstree」コマンドは、プロセスの階層構造をツリー形式で表示するためのコマンドです。このコマンドを使用すると、実行中のプロセスの関係や親子関係を視覚的に把握することができます。
コマンドの主なオプションと説明
オプション | 説明 |
---|---|
-p | PIDも表示する。 |
-p [プロセスID] | 指定したプロセスIDのプロセスのみを表示する。 |
-h | カレントプロセスと先祖のプロセスを強調表示する。 |
-u | ユーザーIDを表示する。 |
-a | プロセスのコマンドライン引数も表示する。 |
-n | プロセスのPIDでソートして表示する。 |
-l | 長いフォーマットで表示する。デフォルトは、長い行はディスプレイの幅で切られる。 |
-c | 同じサブツリーを圧縮して表示しない。 |
コマンドの使用例と解説
1.プロセスツリーの表示
このコマンドは、実行中のすべてのプロセスを親子関係に基づいてツリー形式で表示します。
$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─3*[VBoxClient───VBoxClient───3*[{VBoxClient}]]
├─VBoxClient───VBoxClient───4*[{VBoxClient}]
├─VBoxDRMClient───4*[{VBoxDRMClient}]
├─VBoxService───8*[{VBoxService}]
├─abrt-dbus───3*[{abrt-dbus}]
├─2*[abrt-watch-log]
├─abrtd
(省略)
2.プロセスツリーの詳細表示
-aオプションを使用すると、各プロセスのコマンドライン引数も表示されます。
$ pstree -a
systemd --switched-root --system --deserialize 22
├─ModemManager
│ └─2*[{ModemManager}]
├─NetworkManager --no-daemon
│ ├─dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf...
│ └─2*[{NetworkManager}]
├─VBoxClient --clipboard
│ └─VBoxClient --clipboard
│ └─3*[{VBoxClient}]
(省略)
3.プロセスツリーの特定のプロセスのみ表示
-pオプションを使用すると、PIDも表示されます。
$ pstree -p
systemd(1)─┬─ModemManager(742)─┬─{ModemManager}(763)
│ └─{ModemManager}(771)
├─NetworkManager(971)─┬─dhclient(1119)
│ ├─{NetworkManager}(990)
│ └─{NetworkManager}(995)
├─VBoxClient(2507)───VBoxClient(2511)─┬─{VBoxClient}(2513)
│ ├─{VBoxClient}(2517)
(省略)
-pオプションを使用して、指定したプロセスIDのプロセスのみを表示します。
pstree -p [プロセスID]
以下は、プロセスID「971」を指定した場合の出力です。
$ pstree -p 971
NetworkManager(971)─┬─dhclient(1119)
├─{NetworkManager}(990)
└─{NetworkManager}(995)
4.プロセスツリーのユーザー名表示
-uオプションを使用すると、各プロセスの所有者のユーザー名も表示されます。
$ pstree -u
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─3*[VBoxClient(user01)───VBoxClient───3*[{VBoxClient}]]
├─VBoxClient(user01)───VBoxClient───4*[{VBoxClient}]
├─VBoxDRMClient───4*[{VBoxDRMClient}]
├─VBoxService───8*[{VBoxService}]
├─2*[abrt-watch-log]
(省略)
「pstree」コマンドを使用すると、システム内のプロセスの関係や階層構造を簡単に把握することができます。異なるオプションを組み合わせることで、必要に応じてより詳細な情報を取得できます。