如何解决流程重新父母:控制谁是新父母
| 新父母总是“初始化”还是有某种方法可以控制谁成为新父母? 维基百科似乎表明它总是“初始化”。我真的希望事实并非如此。我已经尝试过使用setpgid和setsid可以想到的所有方法,但是没有运气。现在,我看到了这篇维基百科文章,我需要建议。 在类似Unix的操作系统中,任何 孤立的过程将立即 由特殊初始化系统采用 处理。该操作称为 重新父母,并自动发生。 即使从技术上讲 将\“ init \”进程作为其父进程, 它仍然称为孤立过程 从最初的过程 创建它不再存在。 摘自维基百科 我问的原因是因为我正在制作一个运行许多辅助进程的Mac应用程序。我希望这些工作进程在任务管理器的流程层次结构中显示为主流程的子级。一些工作程序以不同的用户身份运行,在Mac OS X上,我需要分叉两次以将特权传递给子进程。因为我现在“双叉”,这些工作人员当前是作为重婚者运行,并且当与任务管理器一起查看时,我看到这些工作人员将“ init”作为其父进程。解决方法
孤儿总是被
init
收养。没有“ 1”方法可以将父级更改为某些非初始化进程。
从Linux 3.4开始,这不再严格。仍然没有可移植的Unix方式,但是正如Andy Lutomirski指出的那样,Linux 3.4为prctl
增加了PR_SET_CHILD_SUBREAPER
。
实际上,次级收割者履行了init(1)
的角色
后代进程。
, 在Linux上,您可以使用PR_SET_CHILD_SUBREAPER来指示您的孤儿后代应该重新与您成为父项,而不是作为初始项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。