概要
このクイックチュートリアルでは、コマンドラインからLinuxで親プロセスIDを見つける方法 また、psコマンドを使用して、指定された親プロセスIDの子プロセスを見つける方法も学習します。
また、pstreeコマンドを使用して、親プロセスの完全なプロセスツリーを出力する方法についても説明します。 プロセスを強制終了するときに必要な、特定の親のすべての子、そのIdと名前を識別したいときに非常に便利なことです。,
親プロセスID環境変数
現在のコンテキストの親プロセスIDは環境変数として公開されます。 値を確認するには、それをエコーアウトできます。
echo $PPID
たとえば、LinuxサーバーにSSH‘dである場合、$PPID環境変数の値はSSHプロセスのプロセスIDになります。
環境変数はプロセスIDのみを出力します。, 親プロセスが何であるかを確認するには、psコマンドと$PPID環境変数を使用します。
ps -e | grep $PPID
実行中のプロセスの親プロセスIDを見つける
特定のプロセスの親プロセスを決定するには、psコマンド。
ps -o ppid= -p 9801
出力には親プロセスID自体のみが含まれます。 psコマンドからの出力を使用して、プロセスの名前を決定できます。,
ps -e | grep 9801
2029 ? 00:00:14 apache2
親プロセスIDの子プロセスのリスト
親プロセスIDを使用して、pgrepコマンドを使用して、親プロセスを使用してすべての子プロセスをルックアップすることができます。
pgrep -laP $PPID
典型的なSSH親の場合、出力は次のプロセスをリストします
30797 -bash30798 /usr/lib/openssh/sftp-server
プロセスツリーの表示
もう一つの便利なユーティリティはpstreeコマンド。 このコマンドは、親プロセスIDの子プロセスのツリーを出力します。, たとえば、現在の親プロセスから子プロセスのツリーを表示するには、次のコマンドを実行します。
pstree $PPID
sshd─┬─bash───pstree └─sftp-server
上記の例から、sshdプロセスが現在の親プロセスID(PPID)であり、二つの子プロセスがあることがわかります。 子プロセスはbashおよびsftp-server。
また、bashプロセスには、pstree実行したばかりのコマンドである独自の子があることがわかります。,
pstreeコマンドは、ツリー内の各プロセスのプロセスIDを出力することもできます。 プロセスIdを出力するには、-pフラグを使用します。 Apache webサーバーのプロセスツリーの例を次に示します。
pstree -p 2029