我想知道在运行之前是否有某种方法可以强制使用某些特定的进程ID到Linux。 我需要事先知道进程ID。
谢谢
是/ proc目录dynamic生成每个请求?
batch file,Vista x64,如果和括号
在特定的屏幕上启动进程
其实,有一个办法可以做到这一点。 由于内核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。
没有办法强制使用特定的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] 举报,一经查实,本站将立刻删除。