我正在用 Linux 做一些模拟工作,我现在正在编写的代码只能在这样的假设下工作:一旦内核为进程分配了 PID,该 PID 将保持不变,直到进程被终止。我认为这是真的,但由于我对 Linux 世界还不太熟悉,我只是想看看是否有任何我应该注意的特殊情况。谢谢!
答案1
是的,这是肯定的。即使进程的映像被另一个进程替换,该进程的 PID 也将保持不变执行系统调用。
答案2
出色地...大多。
作为其他发帖者表示任何特定进程都将无限期地保留其 PID。即使通过一个或多个 实例exec
。
然而,如果程序员想在 unix 机器上逃避该保证,那他完全不会遇到麻烦。他只需fork
忽略子进程中的 HUP 信号,然后终止母进程即可。其结果是子进程使用新的 PID 继续运行,并让进程看起来改变了其 PID。
答案3
Linux 和 Windows 中的 PID 是该进程独有的。PID 永远不会改变。