Java プロセス p1 を実行するシェル スクリプトがあり、p1 から入力を受け取る非 Java プロセス p2 もあります。
p1 のプロセス ID を取得するにはどうすればよいですか?
予期しない動作をするシェル スクリプトがあります (動作する場合と動作しない場合があります)。私はネットを閲覧しましたが、完璧な答えはないようです。
私のスクリプト:
nohup sh -c "exec java p1 | p2 2>&1" &
$pid=`echo $!`
my_pid=exec ps -eo "%p %c %P" | awk -v p=$pid 'p==$3{print $1 $2}' | grep java | sed -e 's/java//'
echo "my_pid $my_pid"