Che cos'è il formato di file PID?
Un file .pid è un piccolo file di testo semplice utilizzato dai demoni Unix e dai servizi in background per registrare il proprio ID di processo (PID) all'avvio. Il file contiene un singolo intero decimale - il PID - opzionalmente seguito da un carattere di nuova riga, rendendo la dimensione tipica del file di soli 2-10 byte.
I file .pid servono a tre scopi pratici. In primo luogo, fungono da blocco (lock): un servizio legge il file all'avvio e controlla se un processo con quel PID è ancora in esecuzione, prevenendo istanze duplicate. In secondo luogo, consentono agli script di inizializzazione e ai gestori di servizi di inviare segnali (SIGTERM, SIGHUP) al processo corretto senza una ricerca separata. Terzo, gli strumenti di monitoraggio li usano per rilevare se un servizio è andato in crash.
I file sono convenzionalmente memorizzati in /var/run/ su Linux o /tmp/ su altri sistemi Unix e prendono il nome dal servizio proprietario - ad esempio, nginx.pid o mysqld.pid. Quando il processo termina correttamente, rimuove il proprio file .pid; un file lasciato dopo un crash è chiamato *stale PID file* (file PID obsoleto) e deve essere rimosso prima di riavviare il servizio.
I formati correlati includono i file .lock, che svolgono un ruolo simile di mutua esclusione. I moderni sistemi Linux che eseguono systemd si affidano sempre più al tracciamento dei processi basato su cgroup invece dei file .pid, riducendone gradualmente l'uso nelle definizioni delle nuove unità di servizio.
Sicurezza e incolumità
RISCHIO: LOWI file PID sono testo semplice contenente solo un numero. Non possono essere eseguiti e non rappresentano un rischio per la sicurezza in sé. Non impostare manualmente PID arbitrari in un file .pid - i servizi dipendono dall'accuratezza del PID per la consegna dei segnali. L'eliminazione di un .pid obsoleto è sicura e necessaria per sbloccare il riavvio di un servizio.
Dettagli del formato
in sintesiProgrammi che aprono file PID
Dettagli tecnici
specifiche approfondite| Contenuto del file | Singolo intero decimale (l'ID del processo), opzionalmente seguito da una nuova riga |
| Dimensione tipica del file | 2-10 byte (i PID di Linux arrivano fino a 4.194.304, richiedendo fino a 7 cifre) |
| Codifica | Testo semplice ASCII; nessun dato binario |
| Percorso di archiviazione convenzionale | /var/run/ su Linux; /tmp/ su altri sistemi Unix |
| Convenzione di denominazione | Prende il nome dal servizio proprietario, ad esempio nginx.pid o mysqld.pid |
| Ciclo di vita | Creato all'avvio del demone; rimosso alla chiusura corretta; lasciato obsoleto dopo un crash |
| Scopi primari | Prevenire istanze duplicate del servizio; indirizzare i segnali (SIGTERM, SIGHUP) al PID corretto; consentire il monitoraggio dello stato |
| Sistemi operativi | Linux, macOS, BSD, Unix; alcuni demoni Windows tramite WSL |
| Alternativa moderna | Tracciamento cgroup di systemd, che elimina la necessità di file PID nei nuovi file di unità di servizio |
| Tipo MIME | text/plain |
| Struttura del file | Testo semplice a campo singolo; nessuna intestazione, nessuno schema, nessuna struttura binaria |
| Rilasciato | 1980s (POSIX/Unix convention) |
| Ultima versione | N/A (no versioned spec) |
Conversioni PID
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file PID.