GNU/Linux >> Linux の 問題 >  >> Linux

コマンドラインからGNU/Linuxで特定のプロセスの親PIDを取得するには?

コマンドライン:

ps -o ppid= -p 1111

機能:

ppid () { ps -p ${1:-$$} -o ppid=; }

エイリアス (関数が望ましい):

alias ppid='ps -o ppid= -p'

スクリプト:

#!/bin/sh
pid=$1
if [ -z $pid ]
then
    read -p "PID: " pid
fi
ps -p ${pid:-$$} -o ppid=

関数またはスクリプトに PID が指定されていない場合、デフォルトで現在のプロセスの PPID が表示されます。

エイリアスを使用するには、PID を指定する必要があります。


親 ID を出力するには (PPID ) すべてのプロセスのうち、次のコマンドを使用します:

ps j

単一のプロセスの場合は、次のように PID を渡すだけです:ps j 1234 .

値のみを抽出するには、出力を awk でフィルタリングします など:

ps j | awk 'NR>1 {print $3}' # BSD ps
ps j | awk 'NR>1 {print $1}' # GNU ps

すべての親の PID を一覧表示するには、pstree を使用します (お持ちでない場合はインストールしてください):

$ pstree -sg 1234
systemd(1)───sshd(1036)───bash(2383)───pstree(3007)

現在のプロセスの親 PID を取得するには、echo $$ を使用します .


これは、私が学び、忘れ、再学習し、繰り返すものの 1 つです。しかし、それは便利です。 pstree コマンドの「s」フラグは、N:に葉を持つツリーを示します。

pstree -sA $(pgrep badblocks)
systemd---sudo---mkfs.ext4---badblocks

Linux
  1. Linux –コマンドラインからインテルアーキテクチャーファミリーを見つける方法は?

  2. Linuxでのpidからのプロセス名

  3. 親プロセスから子プロセスを取得する方法

  1. Linuxコマンドラインからソフトウェアをインストールする方法

  2. Linuxでコマンドラインからファイルとディレクトリを削除する方法

  3. コマンドラインから IP アドレスを取得するにはどうすればよいですか?

  1. UNIX/Linux システムで実行中のプロセスにコマンドライン引数を渡す方法は?

  2. シェルスクリプトでフォークされた子プロセスから PID を取得する方法

  3. コマンドラインからGUI Linuxプログラムを起動する方法はありますが、コマンドラインとは別ですか?