web-dev-qa-db-ja.com

PIDが実行されていないときでも/ proc / PIDは存在できますか?

pID 4587のプロセスがないにもかかわらず、/proc/4587のようなフォルダーが存在する可能性はありますか?

11
David Dai

/procprocマウントにすぎません(そして、オーバーレイでトリックをプレイしている人はいません)。いいえ、pidベースのフォルダーは、対応するプロセスが何らかの状態(ゾンビを含む)に存在する限り、存在します。実際、プロセスIDのディレクトリエントリを返す直前に カーネルがプロセスの存在を再検証 —したがって、ディレクトリエントリが返された瞬間、対応するプロセスはまだ存在しています。 ディレクトリへのアクセス も、対応するプロセスを検索することから始まります。 (行番号が変わった場合は、proc_pident_instantiateおよびproc_pident_lookup。)

リスティングによって引き起こされる問題に遭遇することができます/procおよび結果を後で(数マイクロ秒後でも)使用する:/proc、そして結果に基づいて行動する前に停止します。

25
Stephen Kitt