在子进程UNIX上调用setpgid

时间:2009-10-03 19:55:28

标签: unix process

我想要一个替代函数调用setpgid来调用已经完成exec()调用的进程。 如果在已调用exec的子进程上调用setpgid,则返回错误。 是否存在任何替代功能?

1 个答案:

答案 0 :(得分:1)

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