web-dev-qa-db-ja.com

プロセスが死なない限り、プロセスPIDは同じままであることが保証されていますか?

Linuxでシミュレーション作業を行っていますが、現在作業しているコードは、プロセスにカーネルによってPIDが割り当てられると、プロセスが強制終了されるまでそのPIDは同じままであるという前提でのみ機能します。 。これは本当だと思いますが、私はLinuxの世界に慣れていないので、知っておくべき特別な状況があるかどうかを確認したいと思います。ありがとう!

8
Reiik

はい、保証されています。 exec システムコールによってイメージが別のイメージに置き換えられた場合でも、プロセスのPIDは同じになります。

10
xaizek

ええと...ほとんど

他の投稿者が言っているように 特定のプロセスはそのPIDを無期限に保持します。 execの1つ以上のインスタンスを介しても。

しかし、UNIXボックスでの保証を回避したいプログラマーはまったく問題ありません。彼は単純にforkし、娘のHUPシグナルを無視して、母親のプロセスを強制終了します。その結果、娘は新しいPIDを継続し、プロセスによってPIDが変更されたように見えます。

LinuxおよびWindowsのPIDは、そのプロセスに固有のものです。 PIDは変更されません。

3
Keltari