殺された後も同じPIDが使用されますか?

殺された後も同じPIDが使用されますか?

エディタを使用してファイルを開きましたvim。セッション中でしたがssh、長い間接続がなかったため、セッションが終了して接続を再確立する必要がありました。エディタを使用してファイルを再度開くと、vim次の内容が報告されます。

E325: ATTENTION
Found a swap file by the name ".latest2.sh.swp"
          owned by: ramesh   dated: Sun May 11 11:54:08 2014
         file name: ~ramesh/latest2.sh
          modified: no
         user name: ramesh   host name: xxx.xxx.edu
        process ID: 1466 (still running)
While opening file "latest2.sh"

ファイルをあまり変更していないので、

kill -9 1466

プロセスが消えたことを確認すると、

ps -aef | grep ramesh

そしてPID 1466そこにはありません。これでファイルを再度開くと、同じメッセージが表示されます。

E325: ATTENTION
Found a swap file by the name ".latest2.sh.swp"
          owned by: ramesh   dated: Sun May 11 11:54:08 2014
         file name: ~ramesh/latest2.sh
          modified: no
         user name: ramesh   host name: xxx.xxx.edu
        process ID: 1466
While opening file "latest2.sh"

しかし、その過程はもう実行されません。状態。

今質問があります。PID使用法。 ~によるとウィキペディア入り口、

Unixでは、プロセスIDは通常0から始まり、最大値まで順番に割り当てられます。これはシステムによって異なります。この制限に達すると、割り当てはゼロから再開され、再び増加します。ただし、このパスの後続のパスでは、まだプロセスに割り当てられているすべてのPIDをスキップします。

今、利用可能なすべてのPIDを使い果たしたと仮定すると、PID 1466はい使用されるまたは飛び越える

もう殺されたから使うべきだと思いました。しかし、2番目にファイルを開こうとしてもPID 1466

この状況ではどうなりますか?

答え1

はい、PIDはいつでも再利用できます。

その出力で見ることができるのは、ファイルを生成したプロセスがということです.swp1466これは、プロセスがまだ存在することを意味するものではありません。
ファイルは静的で、ファイルを開いたプロセスが終了しても変更されないことを覚えておいてください。したがって、1466 が終了すると、ファイルには「PID 1466 で編集中です」というメッセージが引き続き含まれます。 VIMはプロセスがまだ存在することを確認し、それを表示します(still running)

前述のように、他のプロセスがまったく同じPIDを取得することが可能です。として報告されると、(still running)VIMはPIDがVIMプロセスであることを実際には確認しません。

E325: ATTENTION
Found a swap file by the name ".test.swp"
          owned by: root   dated: Sun May 11 17:04:36 2014
         file name: /tmp/test
          modified: no
         user name: root   host name: whistler
        process ID: 21824 (still running)
While opening file "test"
             dated: Sun May 11 17:04:36 2014

この場合、PID 21824は私が始めたシェルです。  

phemmer  21824  19   0  0.0  0.0 S+         00:53 bash -c [[ "$$" == 21824 ]] && echo MATCH && sleep 999999

関連情報