我想使用(在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