1
我正在寫一個殼C.我試圖爲每個作業設置一個新的進程組。每條管道的第一道工序成爲工作過程組的領導者,其他工序加入領導者的工藝組。在殼中管道作業控制
所以在這種情況下,cat somefile | wc
,cat
過程將是過程的領導者。
如何使用setpgid
實現此行爲?如果我循環遍歷每個進程,是否需要存儲第一個fork的pid
的值,並將其用作循環後續迭代的組ID,以便在子類中設置相應的進程組ID?
我正在寫一個殼C.我試圖爲每個作業設置一個新的進程組。每條管道的第一道工序成爲工作過程組的領導者,其他工序加入領導者的工藝組。在殼中管道作業控制
所以在這種情況下,cat somefile | wc
,cat
過程將是過程的領導者。
如何使用setpgid
實現此行爲?如果我循環遍歷每個進程,是否需要存儲第一個fork的pid
的值,並將其用作循環後續迭代的組ID,以便在子類中設置相應的進程組ID?
如果我是你,我會選擇父親收到的fork()pid,並執行setpgid(child_pid,your_gid);. getpgid(0)可用於返回您的組ID。使用這兩條信息來做setpgid()。