gpt4 book ai didi

linux - 如何在循环中检查后台多个进程的退出状态?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:03 26 4
gpt4 key购买 nike

我在后台有一个脚本循环

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 行显然是可选的。

关于linux - 如何在循环中检查后台多个进程的退出状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16032001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com