PID ファイル形式とは?
.pid ファイルは、Unix デーモンやバックグラウンドサービスが起動時に自身のプロセス ID(PID)を記録するために使用する小さなプレーンテキストファイルです。ファイルには単一の 10 進整数(PID)が含まれ、オプションで改行が続く場合があります。一般的なファイルサイズはわずか 2 〜 10 バイトです。
.pid ファイルには 3 つの実用的な目的があります。第一に、ロックとして機能します。サービスは起動時にファイルを読み取り、その PID を持つプロセスがまだ実行中かどうかを確認することで、二重起動を防止します。第二に、init スクリプトやサービスマネージャーが、別途検索することなく正しいプロセスにシグナル(SIGTERM、SIGHUP)を送信できるようにします。第三に、監視ツールがサービスがクラッシュしたかどうかを検出するために使用します。
ファイルは慣習的に Linux では /var/run/、その他の Unix システムでは /tmp/ に保存され、所有するサービスにちなんで命名されます(例:nginx.pid や mysqld.pid)。プロセスが正常に終了すると、自身の .pid ファイルを削除します。クラッシュ後に残されたファイルは *stale PID file*(古い PID ファイル)と呼ばれ、サービスを再起動する前に削除する必要があります。
関連する形式には、同様の排他制御の役割を果たす .lock ファイルがあります。systemd を実行している最新の Linux システムでは、.pid ファイルの代わりに cgroup ベースのプロセス追跡への依存を強めており、新しいサービスユニット定義での使用は徐々に減少しています。
セキュリティと安全性
リスク: LOWPID ファイルは数字のみを含むプレーンテキストです。実行することはできず、それ自体にセキュリティ上のリスクはありません。.pid ファイルに手動で任意の PID を設定しないでください。サービスはシグナル配信のために PID が正確であることに依存しています。古い .pid を削除することは安全であり、サービスの再起動を解除するために必要です。
形式の詳細
概要PID ファイルを開くプログラム
技術的詳細
詳細仕様| ファイルの内容 | 単一の 10 進整数(プロセス ID)、オプションで改行が続く |
| 一般的なファイルサイズ | 2-10 バイト(Linux の PID は最大 4,194,304 に達し、最大 7 桁必要) |
| エンコーディング | ASCII プレーンテキスト。バイナリデータなし |
| 慣習的な保存パス | Linux では /var/run/、その他の Unix システムでは /tmp/ |
| 命名規則 | nginx.pid や mysqld.pid のように、所有するサービスにちなんで命名される |
| ライフサイクル | デーモンの起動時に作成、正常終了時に削除、クラッシュ後は古いまま残る |
| 主な目的 | サービスの二重起動防止、正しい PID へのシグナル(SIGTERM、SIGHUP)送信、ヘルス監視の有効化 |
| オペレーティングシステム | Linux, macOS, BSD, Unix。WSL 経由の一部の Windows デーモン |
| 現代的な代替手段 | systemd の cgroup 追跡。新しいサービスユニットファイルでは PID ファイルが不要になる |
| MIME タイプ | text/plain |
| ファイル構造 | 単一フィールドのプレーンテキスト。ヘッダーなし、スキーマなし、バイナリ構造なし |
| リリース日 | 1980s (POSIX/Unix convention) |
| 最新バージョン | N/A (no versioned spec) |
PID の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PID ファイルについて最初の質問をしてみましょう。