我有一个循环在后台脚本
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
行显然是可选的