一尘不染

如何在Linux中为特定程序设置进程ID

linux

我想知道是否有某种方法可以在运行某个应用程序之前强制将某些特定进程ID运用于Linux。我需要提前知道进程ID。


阅读 545

收藏
2020-06-03

共1个答案

一尘不染

实际上,有一种方法可以做到这一点。由于设置了CONFIG_CHECKPOINT_RESTORE的内核3.3(在大多数发行版中已设置),因此存在/ proc
/ sys / kernel / ns_last_pid,其中包含内核生成的最后一个pid。因此,如果要为派生程序设置PID,则需要执行以下操作:

  1. 打开/ proc / sys / kernel / ns_last_pid并获取fd
  2. 用LOCK_EX植绒
  3. 写PID-1
  4. 叉子

瞧!孩子将拥有您想要的PID。另外,不要忘记解锁(使用LOCK_UN锁定)并关闭ns_last_pid。

你可以在我的博客检出的C代码在这里

2020-06-03