如何查看后台循环中多个进程的退出状态?



我有一个循环在后台脚本

while read host
do
./script &
done
wait  #waits till all the background processes are finished

但是我想检查进程的退出状态我该怎么做呢

while read host
do
./script &
wait $! || let "FAIL+=1"
done
wait
echo $fail

但是上述代码是否会并行执行,因为时间是一个重要因素对我来说,我想让所有主机并行执行。

是否有可能知道哪个进程失败了,以便我可以执行

   echo "these are the list of process ids in background that failed"
   12346
   43561
   .....

在后台运行的并行进程的数量是否有限制?在上面的循环中运行大约20个并行进程是否安全

您可以将此添加到脚本末尾:

RC=$?
test $RC -eq 0 || echo "$$ failed"
exit $RC

$$返回shell的PID。您的后台脚本将在它们自己单独的shell中运行。

exit $RC行显然是可选的

最新更新