Linuxコマンドpstreeは、親子関係を持って実行されるプロセスを直感的に表示します。pstreeは、その名の通りプロセスツリー(Process Tree)を表示するコマンドで、現在実行中のプロセスの構造をツリー形式で視覚化してくれます。今回の投稿では、pstreeコマンドの使い方や主要なオプションを紹介し、活用方法について説明します。
目次
Linuxコマンドpstreeとは?
pstreeは、現在システムで実行中のすべてのプロセスをツリー形式で表示するコマンドです。一般的なpsコマンドとは異なり、プロセスがどの親子関係を持っているかを一目で把握できるようにしてくれます。
プロセスツリーとは?
Linuxでは、すべてのプロセスが親プロセス(Parent Process)と子プロセス(Child Process)の関係を持っています。たとえば、システムが起動されると最初に実行されるプロセスは、initまたはsystemdという親プロセスであり、この親プロセスが複数の子プロセスを実行します。この関係をツリー形式で表したものがプロセスツリーです。
pstreeコマンドの基本的な使い方
pstreeコマンドをターミナルに入力すると、現在実行中のプロセスツリーが表示されます。最も基本的な使い方は次の通りです。
pstree
ShellScriptこのコマンドを実行すると、以下の図のように現在システムで実行中のプロセスがツリー形式で表示されます。各プロセスは親プロセスの下に子プロセスとしてリストされます。
上記のように、systemdが親プロセスであり、その下に複数の子プロセスがツリー形式で並んでいるのがわかります。
特定ユーザーのプロセスだけを見る
特定ユーザーのプロセスだけを見たい場合は、[ユーザー名]オプションを使用できます。このオプションは、大規模なシステムで特定のユーザーのプロセスを追跡したいときに便利です。
pstree username
ShellScriptこのコマンドは、以下の図のように、そのユーザーが実行中のプロセスのみをツリー形式で表示します。
特定PIDのプロセスだけを見る
特定のPIDに関連するプロセスだけを確認したい場合は、pstreeのパラメータにPID値を渡します。
pstree PID
ShellScriptこの場合、-pオプションを併用すると、構造とPIDを同時にすばやく確認できます。
主要なオプション
pstreeは、さまざまなオプションを提供しており、プロセスツリーをより詳細に表示したり、見やすくすることができます。よく使用されるオプションをいくつか紹介します。
ユーザー別のプロセス表示 (-u)
pstree -u
オプションを使用すると、各プロセスを実行しているユーザー名が表示されます。
pstree -u
ShellScriptこのコマンドは、プロセスの横にユーザー名を表示し、どのユーザーがどのプロセスを実行しているかを確認できます。
PID表示 (-p)
プロセスID(PID)を確認したい場合は、-pオプションを使用します。PIDは各プロセスに固有の識別番号です。
pstree -p
ShellScript以下の図のように、各プロセスのPIDがカッコ内に表示されます。
ハイライトモード (-H)
pstreeのデフォルト出力は特に強調表示がないため、目的のプロセスをすぐに見つけるのが難しい場合があります。その場合は、-H
オプションを使用して特定のPIDを強調表示できます。
pstree -H PID
ShellScript以下の図は、PID 838が強調表示されていることを示しています。
ASCIIモード (-A)とUnicodeモード (-U)
デフォルトでは、pstreeはUnicodeモードで出力されます。Unicodeモードを明示的に指定することも可能ですが、プロセスツリーをASCII文字だけで表示したい場合は-A
オプションを使用します。
pstree -U # Unicodeモード
pstree -A # ASCIIモード
ShellScript次の例は、-Aオプションを使用してASCIIモードでツリー構造を表示したものです。
実用的な活用例
システムモニタリング
pstreeコマンドは、システムモニタリングやトラブルシューティングに非常に役立ちます。たとえば、特定のプロセスが予期せず多くの子プロセスを生成している場合、pstreeを使用すると簡単に確認できます。
デーモン管理
Linuxサーバー環境では、多くのデーモンが実行されています。各デーモンの子プロセスがどのように実行されているかをツリー構造で確認することで、問題発生時に迅速に原因を追跡できます。
注意事項
- プロセスが多い場合、ツリー構造が非常に複雑になることがあります。その場合は、PIDや特定ユーザーのプロセスだけを表示するオプションを使って、出力を簡素化するのが良いでしょう。
- Linuxのディストリビューションによっては、pstreeコマンドがデフォルトでインストールされていないこともあります。その場合は、
psmisc
パッケージをインストールする必要があります。
まとめ
pstreeコマンドは、Linuxシステムで実行中のプロセスをツリー形式で視覚化することで、システムモニタリングやトラブルシューティングをより直感的に行うことができます。特に、親子プロセスの関係を明確に表示するため、システムリソースの管理やプロセス管理に非常に役立ちます。基本的な使い方に加え、さまざまなオプションを活用して、出力をカスタマイズすることが重要です。
このコマンドを活用して、複雑なシステム環境でも効率的にプロセスを管理しましょう。