实际上,有一种方法可以做到这一点。由于设置了CONFIG_CHECKPOINT_RESTORE的内核3.3(在大多数发行版中已设置),因此存在/ proc
/ sys / kernel / ns_last_pid,其中包含内核生成的最后一个pid。因此,如果要为派生程序设置PID,则需要执行以下操作:
- 打开/ proc / sys / kernel / ns_last_pid并获取fd
- 用LOCK_EX植绒
- 写PID-1
- 叉子
瞧!孩子将拥有您想要的PID。另外,不要忘记解锁(使用LOCK_UN锁定)并关闭ns_last_pid。
你可以在我的博客检出的C代码在这里。



