只要进程不死亡,进程 PID 就能保证保持不变吗?

只要进程不死亡,进程 PID 就能保证保持不变吗?

我正在用 Linux 做一些模拟工作,我现在正在编写的代码只能在这样的假设下工作:一旦内核为进程分配了 PID,该 PID 将保持不变,直到进程被终止。我认为这是真的,但由于我对 Linux 世界还不太熟悉,我只是想看看是否有任何我应该注意的特殊情况。谢谢!

答案1

是的,这是肯定的。即使进程的映像被另一个进程替换,该进程的 PID 也将保持不变执行系统调用。

答案2

出色地...大多

作为其他发帖者表示任何特定进程都将无限期地保留其 PID。即使通过一个或多个 实例exec

然而,如果程序员想在 unix 机器上逃避该保证,那他完全不会遇到麻烦。他只需fork忽略子进程中的 HUP 信号,然后终止母进程即可。其结果是子进程使用新的 PID 继续运行,并让进程看起来改变了其 PID。

答案3

Linux 和 Windows 中的 PID 是该进程独有的。PID 永远不会改变。

相关内容