2009-10-03 36 views
0

我想要一个替代函数调用setpgid来调用已完成exec()调用的进程。 setpgid在已经调用exec的子项上调用时会返回错误。 是否存在其他替代功能?在子进程上调用setpgid UNIX

回答

1

成功执行后,进程组只能由进程本身进行更改。如果孩子正在合作,将其从另一个流程转变为另一个流程的最直接方法是使用管道或其他进程间通信机制来要求孩子更改其自己的流程组。另一种方法是附加到子进程(例如,使用ptrace,gdb或特定于操作系统的机制),并从子进程的上下文中执行setpgid()系统调用。其他可选方案如新的内核模块或修改内核内存需要根系或特殊系统功能,并且可能比其他方法差得多。