Linuxコマンドpstreeの使い方と5つのオプション

Linuxコマンドpstreeは、親子関係を持って実行されるプロセスを直感的に表示します。pstreeは、その名の通りプロセスツリー(Process Tree)を表示するコマンドで、現在実行中のプロセスの構造をツリー形式で視覚化してくれます。今回の投稿では、pstreeコマンドの使い方や主要なオプションを紹介し、活用方法について説明します。

Linuxコマンドpstreeとは?

pstreeは、現在システムで実行中のすべてのプロセスをツリー形式で表示するコマンドです。一般的なpsコマンドとは異なり、プロセスがどの親子関係を持っているかを一目で把握できるようにしてくれます。

プロセスツリーとは?

Linuxでは、すべてのプロセスが親プロセス(Parent Process)と子プロセス(Child Process)の関係を持っています。たとえば、システムが起動されると最初に実行されるプロセスは、initまたはsystemdという親プロセスであり、この親プロセスが複数の子プロセスを実行します。この関係をツリー形式で表したものがプロセスツリーです。

pstreeコマンドの基本的な使い方

pstreeコマンドをターミナルに入力すると、現在実行中のプロセスツリーが表示されます。最も基本的な使い方は次の通りです。

pstree
ShellScript

このコマンドを実行すると、以下の図のように現在システムで実行中のプロセスがツリー形式で表示されます。各プロセスは親プロセスの下に子プロセスとしてリストされます。

図1. Linuxコマンドpstreeの基本的な実行結果
図1. Linuxコマンドpstreeの基本的な実行結果

上記のように、systemdが親プロセスであり、その下に複数の子プロセスがツリー形式で並んでいるのがわかります。

特定ユーザーのプロセスだけを見る

特定ユーザーのプロセスだけを見たい場合は、[ユーザー名]オプションを使用できます。このオプションは、大規模なシステムで特定のユーザーのプロセスを追跡したいときに便利です。

pstree username
ShellScript

このコマンドは、以下の図のように、そのユーザーが実行中のプロセスのみをツリー形式で表示します。

図2. Linuxコマンドpstree: ユーザーitoのプロセスのみ確認
図2. Linuxコマンドpstree: ユーザーitoのプロセスのみ確認

特定PIDのプロセスだけを見る

特定のPIDに関連するプロセスだけを確認したい場合は、pstreeのパラメータにPID値を渡します。

pstree PID
ShellScript

この場合、-pオプションを併用すると、構造とPIDを同時にすばやく確認できます。

図3. Linuxコマンドpstree: PID 838のプロセスのみ確認
図3. Linuxコマンドpstree: PID 838のプロセスのみ確認

主要なオプション

pstreeは、さまざまなオプションを提供しており、プロセスツリーをより詳細に表示したり、見やすくすることができます。よく使用されるオプションをいくつか紹介します。

ユーザー別のプロセス表示 (-u)

pstree -uオプションを使用すると、各プロセスを実行しているユーザー名が表示されます。

pstree -u
ShellScript

このコマンドは、プロセスの横にユーザー名を表示し、どのユーザーがどのプロセスを実行しているかを確認できます。

図4. Linuxコマンドpstree: -uオプションで実行中のユーザー名を表示
図4. Linuxコマンドpstree: -uオプションで実行中のユーザー名を表示

PID表示 (-p)

プロセスID(PID)を確認したい場合は、-pオプションを使用します。PIDは各プロセスに固有の識別番号です。

pstree -p
ShellScript

以下の図のように、各プロセスのPIDがカッコ内に表示されます。

図5. Linuxコマンドpstree: -pオプションでPID表示
図5. Linuxコマンドpstree: -pオプションでPID表示

ハイライトモード (-H)

pstreeのデフォルト出力は特に強調表示がないため、目的のプロセスをすぐに見つけるのが難しい場合があります。その場合は、-Hオプションを使用して特定のPIDを強調表示できます。

pstree -H PID
ShellScript

以下の図は、PID 838が強調表示されていることを示しています。

図6. Linuxコマンドpstree: -Hオプションで特定PIDを強調表示
図6. Linuxコマンドpstree: -Hオプションで特定PIDを強調表示

ASCIIモード (-A)とUnicodeモード (-U)

デフォルトでは、pstreeはUnicodeモードで出力されます。Unicodeモードを明示的に指定することも可能ですが、プロセスツリーをASCII文字だけで表示したい場合は-Aオプションを使用します。

pstree -U  # Unicodeモード
pstree -A  # ASCIIモード
ShellScript

次の例は、-Aオプションを使用してASCIIモードでツリー構造を表示したものです。

図7. Linuxコマンドpstree: -AオプションでASCIIモードでツリー構造を表示
図7. Linuxコマンドpstree: -AオプションでASCIIモードでツリー構造を表示

実用的な活用例

システムモニタリング

pstreeコマンドは、システムモニタリングやトラブルシューティングに非常に役立ちます。たとえば、特定のプロセスが予期せず多くの子プロセスを生成している場合、pstreeを使用すると簡単に確認できます。

デーモン管理

Linuxサーバー環境では、多くのデーモンが実行されています。各デーモンの子プロセスがどのように実行されているかをツリー構造で確認することで、問題発生時に迅速に原因を追跡できます。

注意事項

  • プロセスが多い場合、ツリー構造が非常に複雑になることがあります。その場合は、PIDや特定ユーザーのプロセスだけを表示するオプションを使って、出力を簡素化するのが良いでしょう。
  • Linuxのディストリビューションによっては、pstreeコマンドがデフォルトでインストールされていないこともあります。その場合は、psmiscパッケージをインストールする必要があります。

まとめ

pstreeコマンドは、Linuxシステムで実行中のプロセスをツリー形式で視覚化することで、システムモニタリングやトラブルシューティングをより直感的に行うことができます。特に、親子プロセスの関係を明確に表示するため、システムリソースの管理やプロセス管理に非常に役立ちます。基本的な使い方に加え、さまざまなオプションを活用して、出力をカスタマイズすることが重要です。

このコマンドを活用して、複雑なシステム環境でも効率的にプロセスを管理しましょう。

リファレンス

関連ポスト

コメントする