我有一个运行 Java 进程 p1 的 shell 脚本,还有一个从 p1 获取输入的非 Java 进程 p2。
如何获取 p1 的进程 ID?
我有一个无法预测的 shell 脚本(有时它有效,有时它不)。我浏览了网络,但没有一个答案似乎是完美的。
我的脚本:
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"