[英]Job Control with Piping in Shell
我正在用C編寫Shell。我正在嘗試為每個作業設置一個新的流程組。 每個管道的第一個流程成為工作流程組的領導者,其他流程加入領導者流程組。
因此,在這種情況下, cat somefile | wc
cat somefile | wc
, cat
進程將成為流程負責人。
如何使用setpgid
實現此行為? 如果我遍歷每個進程,是否需要存儲第一個fork的pid
的值並將其用作組ID,以便在后續循環迭代中在子類中設置適當的進程組ID?
如果我是你,我將使用父級收到的fork()pid並執行setpgid(child_pid,your_gid);。 getpgid(0)可用於返回您的組ID。 使用這兩條信息來執行setpgid()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.