Hva er PID-filformatet?
En .pid-fil er en liten ren tekstfil som brukes av Unix-daemoner og bakgrunnstjenester for å registrere sin egen prosess-ID (PID) ved oppstart. Filen inneholder et enkelt desimalt heltall - PID-en - eventuelt etterfulgt av et linjeskift, noe som gjør den typiske filstørrelsen til bare 2 til 10 byte.
.pid-filer tjener tre praktiske formål. For det første fungerer de som en lås: en tjeneste leser filen ved oppstart og sjekker om en prosess med den PID-en fortsatt kjører, noe som forhindrer duplikate instanser. For det andre lar de init-skript og tjenestebehandlere sende signaler (SIGTERM, SIGHUP) til riktig prosess uten et separat oppslag. For det tredje bruker overvåkingsverktøy dem til å oppdage om en tjeneste har krasjet.
Filer lagres konvensjonelt i /var/run/ på Linux eller /tmp/ på andre Unix-systemer og er oppkalt etter tjenesten som eier den - for eksempel nginx.pid eller mysqld.pid. Når prosessen avsluttes på vanlig måte, fjerner den sin egen .pid-fil; en fil som ligger igjen etter et krasj kalles en *stale PID-fil* (foreldet) og må fjernes før tjenesten startes på nytt.
Relaterte formater inkluderer .lock-filer, som tjener en lignende rolle for gjensidig utelukkelse. Moderne Linux-systemer som kjører systemd, stoler i økende grad på cgroup-basert prosesssporing i stedet for .pid-filer, noe som gradvis reduserer bruken av dem i nyere definisjoner av tjenesteenheter.
Sikkerhet og trygghet
RISIKO: LOWPID-filer er ren tekst som bare inneholder et tall. De kan ikke kjøres og utgjør ingen sikkerhetsrisiko i seg selv. Ikke sett vilkårlige PID-er manuelt i en .pid-fil - tjenester er avhengige av at PID-en er nøyaktig for levering av signaler. Sletting av en foreldet .pid er trygt og nødvendig for å fjerne blokkering av en tjeneste-omstart.
Formatdetaljer
i et nøtteskallProgrammer som åpner PID-filer
Tekniske detaljer
dyp spesifikasjon| Filinnhold | Enkelt desimalt heltall (prosess-ID), eventuelt etterfulgt av et linjeskift |
| Typisk filstørrelse | 2-10 byte (Linux-PID-er når opp til 4 194 304, noe som krever opptil 7 sifre) |
| Koding | ASCII ren tekst; ingen binære data |
| Konvensjonell lagringsbane | /var/run/ på Linux; /tmp/ på andre Unix-systemer |
| Navnekonvensjon | Oppkalt etter tjenesten som eier den, f.eks. nginx.pid eller mysqld.pid |
| Livssyklus | Opprettet ved daemon-oppstart; fjernet ved ren avslutning; etterlatt foreldet etter et krasj |
| Hovedformål | Forhindre duplikate tjenesteinstanser; rute signaler (SIGTERM, SIGHUP) til riktig PID; muliggjøre helseovervåking |
| Operativsystemer | Linux, macOS, BSD, Unix; noen Windows-daemoner via WSL |
| Moderne alternativ | systemd cgroup-sporing, som eliminerer behovet for PID-filer i nye tjenesteenhetsfiler |
| MIME-type | text/plain |
| Filstruktur | Ren tekst med ett felt; ingen header, intet skjema, ingen binær struktur |
| Utgitt | 1980s (POSIX/Unix convention) |
| Siste versjon | N/A (no versioned spec) |
PID-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om PID-filer.