Was ist das PID-Dateiformat?
Eine .pid-Datei ist eine kleine reine Textdatei, die von Unix-Daemons und Hintergrunddiensten verwendet wird, um ihre eigene Prozess-ID (PID) beim Start aufzuzeichnen. Die Datei enthält eine einzelne dezimale Ganzzahl - die PID - optional gefolgt von einem Zeilenumbruch, was die typische Dateigröße auf nur 2 bis 10 Bytes bringt.
.pid-Dateien dienen drei praktischen Zwecken. Erstens fungieren sie als Sperre: Ein Dienst liest die Datei beim Start und prüft, ob ein Prozess mit dieser PID noch läuft, um doppelte Instanzen zu verhindern. Zweitens ermöglichen sie es Init-Skripten und Dienstmanagern, Signale (SIGTERM, SIGHUP) an den richtigen Prozess zu senden, ohne eine separate Suche durchzuführen. Drittens nutzen Monitoring-Tools sie, um festzustellen, ob ein Dienst abgestürzt ist.
Dateien werden herkömmlicherweise in /var/run/ unter Linux oder /tmp/ auf anderen Unix-Systemen gespeichert und nach dem besitzenden Dienst benannt - zum Beispiel nginx.pid oder mysqld.pid. Wenn der Prozess sauber beendet wird, entfernt er seine eigene .pid-Datei; eine nach einem Absturz zurückgebliebene Datei wird als *stale PID file* (veraltete PID-Datei) bezeichnet und muss vor dem Neustart des Dienstes entfernt werden.
Verwandte Formate sind .lock-Dateien, die eine ähnliche Rolle beim gegenseitigen Ausschluss spielen. Moderne Linux-Systeme, die systemd verwenden, verlassen sich zunehmend auf cgroup-basiertes Prozess-Tracking anstelle von .pid-Dateien, was deren Verwendung in neueren Service-Unit-Definitionen schrittweise reduziert.
Sicherheit
RISIKO: LOWPID-Dateien sind reine Textdateien, die nur eine Zahl enthalten. Sie können nicht ausgeführt werden und stellen an sich kein Sicherheitsrisiko dar. Setzen Sie nicht manuell willkürliche PIDs in eine .pid-Datei - Dienste verlassen sich auf die Richtigkeit der PID für die Signalzustellung. Das Löschen einer veralteten .pid ist sicher und notwendig, um einen Neustart des Dienstes zu ermöglichen.
Formatdetails
kurz gefasstProgramme zum Öffnen von PID-Dateien
Technische Details
technische Spezifikation| Dateiinhalt | Einzelne dezimale Ganzzahl (die Prozess-ID), optional gefolgt von einem Zeilenumbruch |
| Typische Dateigröße | 2-10 Bytes (Linux-PIDs erreichen bis zu 4.194.304, was bis zu 7 Ziffern erfordert) |
| Kodierung | ASCII-Klartext; keine Binärdaten |
| Konventioneller Pfad | /var/run/ unter Linux; /tmp/ auf anderen Unix-Systemen |
| Benennungskonvention | Benannt nach dem besitzenden Dienst, z. B. nginx.pid oder mysqld.pid |
| Lebenszyklus | Erstellt beim Daemon-Start; entfernt bei sauberem Beenden; bleibt nach Absturz veraltet zurück |
| Hauptzwecke | Verhindern doppelter Dienstinstanzen; Signale (SIGTERM, SIGHUP) an die richtige PID leiten; Zustandsüberwachung ermöglichen |
| Betriebssysteme | Linux, macOS, BSD, Unix; einige Windows-Daemons via WSL |
| Moderne Alternative | systemd cgroup-Tracking, welches die Notwendigkeit von PID-Dateien in neuen Service-Unit-Dateien eliminiert |
| MIME-Typ | text/plain |
| Dateistruktur | Reiner Text mit einem Feld; kein Header, kein Schema, keine binäre Struktur |
| Veröffentlicht | 1980s (POSIX/Unix convention) |
| Neueste Version | N/A (no versioned spec) |
PID-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu PID-Dateien.