プログラムが実行されるたびに、カーネルはそのプログラムに関連するプロセスを作成します。単純に言えば、プロセスはLinuxでのプログラムの実行インスタンスです。
カーネルによって作成されたプロセスは、「親プロセス」と呼ばれます。親プロセスから派生または生成されたプロセスは、「子プロセス」として知られています。親プロセスは、それぞれが固有のPID(プロセスID)を持ちながら同じPPIDを共有していることがあります。
このガイドでは、Linuxシステム上で親プロセスID(PPID)やプロセスを見つけるために使用できるさまざまな方法を探ります。
PIDとPPIDの違いは何ですか?
A program that is loaded into memory and running is known as a process. Once started, the process is given a unique number known as the process ID (PID) that uniquely identifies it in the system. The process can be referred to at any time using its PID. For example, to kill a process, you will have to know its PID first.
各プロセスにはPIDに加えて、それを生成したプロセスを示す親プロセスID(PPID)が割り当てられます。したがって、PPIDはプロセスの親のPIDです。
これをコンテキストに置き換えると、プロセス5がPIDとして5050でプロセス6を開始するとします。プロセス6は一意のPID(たとえば6670)を割り当てられますが、PPIDは5050のままです。
ここでの親プロセスはプロセス5であり、子プロセスは6です。子プロセスは一意のPIDを割り当てられますが、PPIDは親プロセス(プロセス5)のPIDと同じです。
A single parent can start multiple several child processes, each with a unique PID but all sharing the same PPID.
Linuxで親プロセスID(PPID)を見つける
実行中のプロセスのPPIDを見つけるための2つの主要なアプローチがLinuxシステム上にあります。
- pstreeコマンドを使用する。
- psコマンドを使用して、
pstreeコマンドを使ってLinuxプロセスのPPIDを見つける
A pstree command is a command-line tool that displays running processes as a tree, which makes for a convenient way of displaying processes in a hierarchy. It shows the parent-child relationship in a tree hierarchy.
で -p
オプションを使用すると、pstreeは実行中のすべての親プロセスとそれぞれの子プロセスおよび対応するPIDを表示します。
$ pstree -p

出力から、親プロセスIDと子プロセスIDがわかります。
デモンストレーションのために、次のコマンドを使用してPPIDを確認し、Mozilla Firefoxのプロセス階層全体を確認します。
$ pstree -p | grep 'firefox'

出力から、PPIDがFirefoxの3457であることがわかり、残りはPIDsの子プロセスです。
FirefoxのPPIDのみを表示し、残りの出力をスキップするには、出力をheadコマンドにパイプし、-1
を使用して最初の行を表示します。
$ pstree -p | grep 'firefox' | head -1

psコマンドを使ってLinuxプロセスのPPIDを見つける
プロセスのPPIDを見つける別のオプションは、psコマンドです。これは、Linuxシステム上で現在実行中のプロセスを表示するために広く使用されているコマンドです。
-ef
オプションを使用すると、psコマンドは実行中のすべてのプロセスとその詳細(UID、PID、PPIDなど)をリストアップします。
$ ps -ef

特定のプロセス、例えばFirefoxのPPIDを表示するために、-e
オプションを渡し、出力をgrepコマンドにパイプする方法を示します。
$ ps -e | grep 'firefox'

出力から、FirefoxのPPIDが3457であることがわかります。
このガイドでは、Linuxシステム上で実行中のプロセスのPPIDsを見つける方法を説明しました。pstreeコマンドまたはpsコマンドのいずれかを使用して、同じ目標に到達することができます。