Hvad er PID-filformatet?
En .pid-fil er en lille almindelig tekstfil, der bruges af Unix-daemons og baggrundstjenester til at registrere deres eget proces-ID (PID) ved opstart. Filen indeholder et enkelt decimalt heltal - PID'et - eventuelt efterfulgt af et linjeskift, hvilket gør den typiske filstørrelse på blot 2 til 10 bytes.
.pid-filer tjener tre praktiske formål. For det første fungerer de som en lås: en tjeneste læser filen ved opstart og kontrollerer, om en proces med det pågældende PID stadig kører, hvilket forhindrer dublerede instanser. For det andet gør de det muligt for init-scripts og tjenesteadministratorer at sende signaler (SIGTERM, SIGHUP) til den korrekte proces uden en separat opslagning. For det tredje bruger overvågningsværktøjer dem til at registrere, om en tjeneste er gået ned.
Filer gemmes konventionelt i /var/run/ på Linux eller /tmp/ på andre Unix-systemer og navngives efter den ejende tjeneste - for eksempel nginx.pid eller mysqld.pid. Når processen afsluttes korrekt, fjerner den sin egen .pid-fil; en fil, der efterlades efter et nedbrud, kaldes en *stale PID file* (forældet PID-fil) og skal fjernes, før tjenesten genstartes.
Relaterede formater inkluderer .lock-filer, som tjener en lignende rolle for gensidig udelukkelse. Moderne Linux-systemer, der kører systemd, stoler i stigende grad på cgroup-baseret processporing i stedet for .pid-filer, hvilket gradvist reducerer deres brug i nyere tjeneste-enhedsdefinitioner.
Sikkerhed og tryghed
RISIKO: LOWPID-filer er almindelig tekst, der kun indeholder et tal. De kan ikke eksekveres og udgør ingen sikkerhedsrisiko i sig selv. Indstil ikke manuelt vilkårlige PID'er i en .pid-fil - tjenester er afhængige af, at PID'et er nøjagtigt for levering af signaler. Sletning af en forældet .pid er sikkert og nødvendigt for at fjerne blokeringen af en genstart af tjenesten.
Formatdetaljer
kort fortaltProgrammer der åbner PID-filer
Tekniske detaljer
dyb specifikation| Filindhold | Enkelt decimalt heltal (proces-ID), eventuelt efterfulgt af et linjeskift |
| Typisk filstørrelse | 2-10 bytes (Linux PID'er når op til 4.194.304, hvilket kræver op til 7 cifre) |
| Kodning | ASCII almindelig tekst; ingen binære data |
| Konventionel lagringssti | /var/run/ på Linux; /tmp/ på andre Unix-systemer |
| Navngivningskonvention | Navngivet efter den ejende tjeneste, f.eks. nginx.pid eller mysqld.pid |
| Livscyklus | Oprettet ved daemon-opstart; fjernet ved korrekt afslutning; efterladt forældet efter et nedbrud |
| Primære formål | Forhindre dublerede tjenesteinstanser; rute signaler (SIGTERM, SIGHUP) til det korrekte PID; muliggøre sundhedsovervågning |
| Operativsystemer | Linux, macOS, BSD, Unix; visse Windows-daemons via WSL |
| Moderne alternativ | systemd cgroup-sporing, som eliminerer behovet for PID-filer i nye tjeneste-enhedsfiler |
| MIME-type | text/plain |
| Filstruktur | Almindelig tekst med et enkelt felt; ingen header, intet skema, ingen binær struktur |
| Udgivet | 1980s (POSIX/Unix convention) |
| Seneste version | N/A (no versioned spec) |
PID-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om PID-filer.