gpt4 book ai didi

linux - (Linux) 如何让子进程的子进程等待

转载 作者:太空宇宙 更新时间:2023-11-04 03:33:36 25 4
gpt4 key购买 nike

我尝试使用的代码(korn 中的 shell 脚本)是这样的:

load_x ()
{
consumer_load &
producer_spool
}

while read line
do
load_x &
done < list_of_loads
wait

简而言之,我试图从平面文件中读取表列表,然后并行触发它们的加载。我还在后台触发 Consumer_load 函数,以便 Producer_spool 函数可以通过命名管道向其提供数据。我面临的问题是等待语句似乎不适用于在后台触发的内部子进程(consumer_load &)。即,它确实等待 load_x 函数完成,但不等待 Consumer_load 完成并移至下一条语句。在这种情况下,如果 Producer_spool 函数在 Consumer_load 之前完成,则即使 Consumer_load 仍在运行,脚本也会结束。有没有办法让脚本等待所有子进程?将 wait 放在 load_x 中(作为最后一行)会起作用吗?

最佳答案

我认为我的问题的答案是由 Barmar 发布的。我仍在验证它,但根据我所看到的,它应该可以工作。

load_x ()
{
consumer_load &
producer_spool
wait # Waits for consumer_load process to finish before exiting load_x
}

while read line
do
load_x &
done < list_of_loads
wait

关于linux - (Linux) 如何让子进程的子进程等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32382884/

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