シェル (私の場合は bash) では、最後にバックグラウンド処理されたプロセスの pid を $! で取得できます。変数:
command &
echo $!
ただし、複合コマンドに興味があります。
commandA | commandB &
echo $!
この場合、$! の値は commandBのPIDのようです。私が探しているのは、commandA の PID です。簡単に手に入れる方法はありますか?
jobs -l
パイプラインの各メンバーの PID を一覧表示します。
この質問を見てください: Bash で別のプロセスにパイプされたプロセスの PID を取得する方法は?
そこで必要なものが見つかるはずです。