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

command-line linux pid process

聞かれる前に解決。cat /proc/1111/status | grep PPid

  103  Vi.  2010-06-08


ベストアンサー

Command line:

ps -o ppid= -p 1111

Function:

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

エイリアス(関数はpreferferable

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

Script:

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

関数やスクリプトに PID が与えられていない場合は、デフォルトで現在のプロセスの PPID を表示します

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

118  Paused until further notice.  2010-06-08


これは学んで、忘れて、学び直して、繰り返すものです。しかし、これは便利です。pstreeコマンドの’s’フラグは、Nに葉がある木を示しています

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

15  user194394  2013-01-31


親のpidはシェル変数PPIDにあるので

echo $PPID

12  Ivan Novotny  2012-09-24


すべてのプロセスの親 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 $$を使用します

12  kenorb  2016-02-19


proc/$PID/statusを読み込みます。簡単にスクリプト化できます

#!/bin/sh
P=$1
if [ -z "$P" ]; then
read P
fi
cat /proc/"$P"/status | grep PPid: | grep -o "[0-9]*"

7  Vi.  2010-06-08


On Linux:

ps hoppid $thatprocess

5  jthill  2014-10-21


top-u username and -p PIDのように好きなオプションをつけて実行してください

そして、topが動作中にfを押すと、topの出力に表示したいオプションのリストが表示され、表示されたパラメータは大文字で表示され、表示されないパラメータは小さい文字で表示されます

つまり、パラメータの前に文字を入力することで、それを有効にしたり無効にしたりすることができます。親プロセスIDにはbを入力してEnterを押すと、PPIDがトップに表示されます

2  Praveen S.  2012-11-23


$ ps -p $(ps -p $(echo $$) -o ppid=) -o comm=
tmux

現在のプロセスを起動した親プロセスのコマンドをチェックする、もう少し複雑な例です

2  sebastian_t  2014-10-19


ここでは、これもうまくいくはずの簡単な解決策を紹介します

ps $$

1  Gevork Palyan  2013-09-12


pid のすべての親プロセス

私がここに来たのは、「pidのすべての親プロセス」を探そうとしていたときです。結局、それを行うために自分で再帰的な関数を作ることになりました

pid_lineage.sh #!/bin/bash -eu main(){ ps -p ${1:-$$} -h -o pid,ppid,args | \ ( read pid ppid args echo -e "$pid\t$args" [[ $pid -gt 1 ]] && main $ppid ) } main "$@"

0  Bruno Bronosky  2019-10-30


タイトルとURLをコピーしました