Wat is het PID-bestandsformaat?
Een .pid-bestand is een klein plat tekstbestand dat door Unix-daemons en achtergrondservices wordt gebruikt om hun eigen proces-ID (PID) vast te leggen bij het opstarten. Het bestand bevat een enkel decimaal geheel getal - de PID - optioneel gevolgd door een regeleinde, waardoor de typische bestandsgrootte slechts 2 tot 10 bytes is.
.pid-bestanden dienen drie praktische doelen. Ten eerste fungeren ze als een vergrendeling (lock): een service leest het bestand bij het opstarten en controleert of een proces met die PID nog steeds actief is, wat dubbele instanties voorkomt. Ten tweede stellen ze init-scripts en servicemanagers in staat om signalen (SIGTERM, SIGHUP) naar het juiste proces te sturen zonder een aparte zoekopdracht. Ten derde gebruiken monitoringtools ze om te detecteren of een service is gecrasht.
Bestanden worden conventioneel opgeslagen in /var/run/ op Linux of /tmp/ op andere Unix-systemen en vernoemd naar de eigenaar-service - bijvoorbeeld nginx.pid of mysqld.pid. Wanneer het proces netjes afsluit, verwijdert het zijn eigen .pid-bestand; een bestand dat achterblijft na een crash wordt een *stale PID file* genoemd en moet worden verwijderd voordat de service opnieuw kan worden gestart.
Gerelateerde formaten zijn onder meer .lock-bestanden, die een vergelijkbare rol spelen bij wederzijdse uitsluiting. Moderne Linux-systemen die systemd draaien, vertrouwen steeds vaker op cgroup-gebaseerde proces-tracking in plaats van .pid-bestanden, waardoor hun gebruik in nieuwere service-unit-definities geleidelijk afneemt.
Beveiliging & veiligheid
RISICO: LOWPID-bestanden zijn platte tekst die alleen een getal bevatten. Ze kunnen niet worden uitgevoerd en vormen op zichzelf geen beveiligingsrisico. Stel niet handmatig willekeurige PID's in een .pid-bestand in - services vertrouwen erop dat de PID nauwkeurig is voor signaalaflevering. Het verwijderen van een verouderde .pid is veilig en noodzakelijk om een herstart van de service te deblokkeren.
Formaatdetails
in een notendopProgramma's die PID-bestanden openen
Technische details
diepe specificaties| Bestandsinhoud | Enkel decimaal geheel getal (de proces-ID), optioneel gevolgd door een regeleinde |
| Typische bestandsgrootte | 2-10 bytes (Linux-PID's kunnen oplopen tot 4.194.304, wat tot 7 cijfers vereist) |
| Codering | ASCII platte tekst; geen binaire gegevens |
| Conventioneel opslagpad | /var/run/ op Linux; /tmp/ op andere Unix-systemen |
| Naamgevingsconventie | Vernoemd naar de eigenaar-service, bijv. nginx.pid of mysqld.pid |
| Levenscyclus | Aangemaakt bij opstarten daemon; verwijderd bij netjes afsluiten; blijft achter na een crash |
| Hoofddoelen | Dubbele service-instanties voorkomen; signalen (SIGTERM, SIGHUP) naar de juiste PID routeren; statusbewaking mogelijk maken |
| Besturingssystemen | Linux, macOS, BSD, Unix; sommige Windows-daemons via WSL |
| Modern alternatief | systemd cgroup-tracking, wat de noodzaak voor PID-bestanden in nieuwe service-unit-bestanden elimineert |
| MIME-type | text/plain |
| Bestandsstructuur | Platte tekst met één veld; geen header, geen schema, geen binaire structuur |
| Uitgebracht | 1980s (POSIX/Unix convention) |
| Laatste versie | N/A (no versioned spec) |
PID conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over PID-bestanden.