2009-10-03 43 views
0

我想要一個替代函數調用setpgid來調用已完成exec()調用的進程。 setpgid在已經調用exec的子項上調用時會返回錯誤。 是否存在其他替代功能?在子進程上調用setpgid UNIX

回答

1

成功執行後,進程組只能由進程本身進行更改。如果孩子正在合作,將其從另一個流程轉變爲另一個流程的最直接方法是使用管道或其他進程間通信機制來要求孩子更改其自己的流程組。另一種方法是附加到子進程(例如,使用ptrace,gdb或特定於操作系統的機制),並從子進程的上下文中執行setpgid()系統調用。其他可選方案如新的內核模塊或修改內核內存需要根系或特殊系統功能,並且可能比其他方法差得多。