.pidファイルとは何ですか?


199

最近、拡張子が.pidのファイルを見つけ、その中を調べましたが、あまり見つかりませんでした。ドキュメントは言う:

Pid-Fileは、ファイルシステムの明確な場所に格納されているプロセス識別番号(pid)を含むファイルで、他のプログラムが実行中のスクリプトのpidを見つけることができます。

誰もがこれにもっと光を当てることができますか、またはpidファイルに含まれているものの詳細に私を導くことができますか?

回答:


210

pidファイルには、特定のプログラムのプロセスID(番号)が含まれています。たとえば、Apache HTTPDはメインプロセス番号をpidファイル(通常のテキストファイルであり、それ以上のものではありません)に書き込み、後でそこに含まれる情報を使用して停止します。その情報を使用して、自分でプロセスを強制終了することもできます。cat filename.pid | xargs kill


4
では、名前でプロセスを調べてみませんか?"pidof $ process_name"を実行してIDを取得できるのに、なぜ.pidファイルを管理する必要があるのでしょうか。
Shnatsel 2013年

14
@Shnatsel:その名前のプロセスが2つ実行されている可能性があり、その1つがそのPIDファイルを担当していることを知る必要があるため。他の理由がありますが、詳細はこちらをご覧くださいされていますunix.stackexchange.com/questions/12815/...
user4815162342

2
その場合、2つのpidファイルがあり、PIDルックアップと同じ問題に直面しています。そのため、pidfileはうまく機能せず、このシナリオだけでなく、私が考えることができる他のシナリオでも、事態を複雑にするだけです。私はそれらがprocfsが表示される前に表示されたか、またはprocfsインターフェースがSolarisとは異なるため、移植性ツールとして使用されていると考えています。たとえば、SolarisはLinuxとはかなり異なります。
Shnatsel 2013

3
ただ一つ:echo filename.pid | xargs killプロセスを殺さないでしょう。あなたが意味したと思います:echo $(cat filename.pid) | xargs kill またはecho <process ID> | xargs kill
Alexandro de Oliveira

2
@AlexandrodeOliveiraだけでなく、エコーと猫を使用する利点はありcat filename.pid | xargs killますか?
Simon A. Eugster 2017

-1

pidファイルを理解するには、このDOCを参照してください

場合によっては、追加のプラグインとユーティリティの追加サポートを必要とする特定のアプリケーションがあります。そのため、参照用にこのpidファイルを使用して、これらのユーティリティとプラグインプロセス実行IDを追跡します。

そのため、アプリケーションを再起動するたびに、pidファイルが古くなるため、必要なすべてのプラグインと依存アプリを再起動する必要があります。


8
あなたの最初のリンクは本当に質問に答えません。
ブライアン

5
リンクされた資料は理論的には質問に答えることができますが、答えの本質的な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
Toby Speight 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.