我想使用(在Korn Shell脚本)的代码是这样的:(Linux)的如何使一个子进程的等待手表子过程
load_x()
{
consumer_load &
producer_spool
}
while read line
do
load_x &
done < list_of_loads
wait
概括地说,我想读来自平面文件的表格列表,然后并行触发它们的加载。我也在后台触发consumer_load函数,以便producer_spool函数可以通过命名管道向它提供数据。 我面临的问题是wait语句似乎不适用于在后台触发的内部子进程(consumer_load &)。即它等待load_x函数完成,但不等待consumer_load完成并移至下一个语句。 在这种情况下,如果producer_spool函数在consumer_load之前完成,则即使consumer_load仍在运行,脚本也会结束。 有没有办法让脚本等待所有的子进程?将等待内load_x(作为最后一行)工作?
在Unix上,进程只能等待自己的孩子,没有办法对付孙辈。 – Barmar
是的,'load_x'里面的'wait'应该可以工作。 – Barmar
那么一个子进程可以等待孙子进程吗?如果我在load_x函数内等待,该怎么办? – jawsnnn