このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

プロセスの親子関係を表示する:pstreeコマンド

pstreeコマンドの概要

 Linuxシステムを効果的に管理するためには、実行中のプロセスとその相互関係を正確に理解することが不可欠です。システム上で何が起こっているのか、どのプロセスが他のプロセスを生成しているのかを把握することは、パフォーマンスの最適化、問題のトラブルシューティング、セキュリティの監視において重要な役割を果たします。このような状況で pstree コマンドが非常に役立ちます。

 pstree コマンドは、プロセスの階層構造を木形式で視覚的に表示し、システムのプロセス構造を一目で把握できるようにするユーティリティです。このツールを使用することで、管理者はプロセスの起動元となる親プロセスと、それに由来する子プロセスの関係を簡単に追跡することができます。

【構文】
ps [オプション]

主なオプションと説明

オプション説明
-aコマンドライン引数も表示します。
-cクラスタ化されたサブツリーをまとめない。
-h現在実行中のプロセスとその親プロセスをハイライトします。
-l長い行を表示します。デフォルトでは、長い行はディスプレイの幅で切られる。
-nPID順にノードをソートして表示します。
-p各プロセスのPIDを表示します。
-uプロセスの所有者を示すユーザー名を表示します。
主なオプションと説明

コマンドの使用例と解説

1.基本的な使用法

・「pstree」コマンドを実行します。

 このコマンドはシステム上のプロセスを木構造で表示し、親プロセスから子プロセスへの関係を示します。

user01@ubuntu-vm:~$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─VBoxDRMClient───4*[{VBoxDRMClient}]
        ├─VBoxService───8*[{VBoxService}]
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─acpid
        ├─avahi-daemon───avahi-daemon
        ├─colord───2*[{colord}]
        ├─cron
        ├─cups-browsed───2*[{cups-browsed}]
        ├─cupsd
        ├─dbus-daemon
(省略)
2.プロセスIDを表示

・「pstree -p」コマンドを実行します。

 このオプションを使用すると、各プロセスの横にPIDが表示されます。これはプロセスを特定するのに役立ちます。

user01@ubuntu-vm:~$ pstree -p
systemd(1)─┬─ModemManager(587)─┬─{ModemManager}(615)
           │                   └─{ModemManager}(621)
           ├─NetworkManager(486)─┬─{NetworkManager}(559)
           │                     └─{NetworkManager}(562)
           ├─VBoxDRMClient(1444)─┬─{VBoxDRMClient}(1458)
           │                     ├─{VBoxDRMClient}(1459)
           │                     ├─{VBoxDRMClient}(1460)
           │                     └─{VBoxDRMClient}(3004)
(省略)
3.長い行を表示

・「pstree -l」コマンドを実行します。

 長い行を表示します。デフォルトでは、長い行はディスプレイの幅で切られます。長い行が表示されます。

user01@ubuntu-vm:~$ pstree -l
systemd─┬─ModemManager───2*[{ModemManager}]
(省略)
        ├─NetworkManager───2*[{NetworkManager}]
        ├─cupsd
        ├─dbus-daemon
        ├─gdm3─┬─gdm-session-wor─┬─gdm-wayland-ses─┬─gnome-session-b───2*[{gnome-session-b}]
        │      │                 │                 └─2*[{gdm-wayland-ses}]
        │      │                 └─2*[{gdm-session-wor}]
        │      └─2*[{gdm3}]
        ├─geoclue───2*[{geoclue}]
(省略)

まとめ

 pstree コマンドは、プロセスの階層的な関係を直感的に理解するのに非常に有効なツールです。特にシステムで何が起こっているのかを把握する際や、問題解析時にプロセスの構造を可視化するのに役立ちます。オプションを駆使することで、より詳細な情報を得ることが可能です。