親プロセスのプロセスIDをどのように理解できますか?

親プロセスのプロセスIDをどのように理解できますか?

ループ付きのスクリプトがあります。

while read host
do
./script &
done

./scriptでバックグラウンドで始まる現在のプロセスのプロセスIDを知り、スクリプトで使用したいと思います。

答え1

POSIXシェル(例bash:)を想定すると、これは$$現在のシェルのPIDであり、$PPID親シェルのPIDでもあります。$$スクリプトに渡すか、$PPIDスクリプトで値を確認できます。

答え2

現在、シェルのプロセスIDは特殊変数にあります$$

これを分岐(バックグラウンド)プロセスに渡すことができます。

./script $$ &

「スクリプト」では、これが最初の引数になります。したがって、次のようになります。

parent_pid=$1

要約がありますここでbashの特殊変数

関連情報