聞かれる前に解決。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 0 Bruno Bronosky 2019-10-30#!/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 "$@"