文件名称:fork-wrapper:生成一个程序,然后等待所有子进程终止
文件大小:3KB
文件格式:ZIP
更新时间:2024-06-18 04:02:14
C
叉式包装机 fork-wrapper产生一个程序并在退出之前等待所有子进程退出。 fork-wrapper将以最后一个要退出的子进程的退出状态终止。 问题 许多守护进程(例如 Unicorn)通过创建一个新的主进程来实现热重载。 一旦新的主进程启动,旧的主进程就会退出。 这对 Upstart 来说效果不佳,因为它假定旧的主进程退出意味着服务已停止。 当使用respawn节时,问题更严重 - Upstart 会注意到旧的 master 进程死亡并尝试重新生成它,即使新的 master 进程已经在运行。 解决方案 Linux 3.4 为prctl系统调用引入了一个新选项 - PR_SET_CHILD_SUBREAPER 。 设置此进程属性使其成为“子收割者”。 对于整个进程子树,子收割者的行为类似于 init。 当 subreaper 的孩子死亡时,孩子的孩子被重新分配给 subreaper
【文件预览】:
fork-wrapper-master
----LICENSE(1KB)
----fork-wrapper.c(1KB)
----Makefile(180B)
----README.md(1KB)