Linuxで親プロセスPPIDを見つける方法

プログラムが実行されるたびに、カーネルはそのプログラムに関連するプロセスを作成します。単純に言えば、プロセスは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に加えて、それを生成したプロセスを示す親プロセスIDPPID)が割り当てられます。したがって、PPIDはプロセスの親のPIDです。

これをコンテキストに置き換えると、プロセス5PIDとして5050でプロセス6を開始するとします。プロセス6は一意のPID(たとえば6670)を割り当てられますが、PPID5050のままです。

ここでの親プロセスはプロセス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
Show Linux Running Processes in Tree Hierarchy

出力から、親プロセスIDと子プロセスIDがわかります。

デモンストレーションのために、次のコマンドを使用してPPIDを確認し、Mozilla Firefoxのプロセス階層全体を確認します。

$ pstree -p | grep 'firefox'
Find the PPID of the Linux Process

出力から、PPIDFirefox3457であることがわかり、残りはPIDsの子プロセスです。

FirefoxのPPIDのみを表示し、残りの出力をスキップするには、出力をheadコマンドにパイプし、-1を使用して最初の行を表示します。

$ pstree -p | grep 'firefox' | head -1
Print PPID of Linux Process

psコマンドを使ってLinuxプロセスのPPIDを見つける

プロセスのPPIDを見つける別のオプションは、psコマンドです。これは、Linuxシステム上で現在実行中のプロセスを表示するために広く使用されているコマンドです。

-efオプションを使用すると、psコマンドは実行中のすべてのプロセスとその詳細(UIDPIDPPIDなど)をリストアップします。

$ ps -ef
List Running Linux Processes with PID

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

$ ps -e | grep 'firefox'
Find Linux Process PID

出力から、FirefoxPPID3457であることがわかります。

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

Source:
https://www.tecmint.com/find-parent-process-ppid/