Vad är filformatet PID?
En .pid-fil är en liten textfil som används av Unix-daemoner och bakgrundstjänster för att registrera sitt eget process-ID (PID) vid uppstart. Filen innehåller ett enda decimalt heltal - PID - eventuellt följt av en radbrytning, vilket gör den typiska filstorleken till endast 2 till 10 byte.
.pid-filer tjänar tre praktiska syften. För det första fungerar de som ett lås: en tjänst läser filen vid uppstart och kontrollerar om en process med det PID-numret fortfarande körs, vilket förhindrar dubbla instanser. För det andra tillåter de init-skript och tjänstehanterare att skicka signaler (SIGTERM, SIGHUP) till rätt process utan en separat sökning. För det tredje använder övervakningsverktyg dem för att upptäcka om en tjänst har kraschat.
Filer lagras konventionellt i /var/run/ på Linux eller /tmp/ på andra Unix-system och namnges efter den ägande tjänsten - till exempel nginx.pid eller mysqld.pid. När processen avslutas rent tar den bort sin egen .pid-fil; en fil som lämnas kvar efter en krasch kallas en *stale PID file* (föråldrad PID-fil) och måste tas bort innan tjänsten kan startas om.
Relaterade format inkluderar .lock-filer, som tjänar en liknande roll för ömsesidig uteslutning. Moderna Linux-system som kör systemd förlitar sig alltmer på cgroup-baserad processpårning istället för .pid-filer, vilket gradvis minskar deras användning i nyare definitioner av tjänsteenheter.
Säkerhet & trygghet
RISK: LOWPID-filer är textfiler som endast innehåller ett nummer. De kan inte köras och utgör ingen säkerhetsrisk i sig själva. Ställ inte in godtyckliga PID-nummer manuellt i en .pid-fil - tjänster förlitar sig på att PID-numret är korrekt för signalering. Att ta bort en föråldrad .pid är säkert och nödvändigt för att möjliggöra omstart av en tjänst.
Formatdetaljer
i ett nötskalProgram som öppnar PID-filer
Tekniska detaljer
djup specifikation| Filinnehåll | Ett decimalt heltal (process-ID), eventuellt följt av en radbrytning |
| Typisk filstorlek | 2-10 byte (Linux-PID kan nå upp till 4 194 304, vilket kräver upp till 7 siffror) |
| Kodning | ASCII-text; ingen binär data |
| Konventionell lagringsväg | /var/run/ på Linux; /tmp/ på andra Unix-system |
| Namngivningskonvention | Namngiven efter den ägande tjänsten, t.ex. nginx.pid eller mysqld.pid |
| Livscykel | Skapas vid daemon-start; tas bort vid ren avslutning; lämnas kvar efter en krasch |
| Huvudsakliga syften | Förhindra dubbla tjänsteinstanser; dirigera signaler (SIGTERM, SIGHUP) till rätt PID; möjliggöra hälsoövervakning |
| Operativsystem | Linux, macOS, BSD, Unix; vissa Windows-daemoner via WSL |
| Modernt alternativ | systemd cgroup-spårning, vilket eliminerar behovet av PID-filer i nya tjänsteenhetsfiler |
| MIME-typ | text/plain |
| Filstruktur | Textfil med ett fält; inget huvud, inget schema, ingen binär struktur |
| Släppt | 1980s (POSIX/Unix convention) |
| Senaste version | N/A (no versioned spec) |
PID-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om PID-filer.