微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想知道在运行之前是否有某种方法可以强制使用某些特定的进程ID到Linux。 我需要事先知道进程ID。

谢谢

是/ proc目录dynamic生成每个请求?

batch file,Vista x64,如果和括号

如何在C#中使用用户交互运行registry文件

从以admin身份运行的进程中以用户身份启动进程

在特定的屏幕上启动进程

其实,有一个办法可以做到这一点。 由于内核3.3 CONfig_CHECKPOINT_RESTORE设置(在大多数发行版中设置),因此/ 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代码

没有办法强制使用特定的PID进程。 正如维基百科所说:

进程ID通常是按顺序分配的,从0开始并上升到一个随系统而不同的最大值。 一旦达到这个限制,分配在300重新开始并且再次增加。 在Mac OS X和HP-UX中,分配将从100开始重新开始。但是,对于此过程以及随后的过程,任何仍分配给进程的PID都将被跳过

正如许多人已经建议的,你不能直接设置一个PID,但通常shell有设施知道哪个是最后一个分叉进程ID。

例如在bash中,你可以在后台一个可执行文件(附加& )来查找它的PID,并在变量$!找到它的PID $! 。 例:

$ lsof >/dev/null & [1] 15458 $ echo $! 15458

linux系统上的每个进程由fork()生成,所以不应该强制一个特定的PID。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐