我在背景中有一个带有脚本的循环
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个并行过程是否安全
答案 0 :(得分:1)
您可以将其添加到脚本的末尾:
RC=$?
test $RC -eq 0 || echo "$$ failed"
exit $RC
$$返回shell的PID。您的后台脚本将在各自独立的shell中运行。
exit $RC
行显然是可选的。