Che cos'è un file .pid e cosa contiene?


199

Di recente ho trovato un file con estensione .pid ed esplorato al suo interno ma non ho trovato molto. La documentazione dice:

Un file Pid è un file contenente il numero di identificazione del processo (pid) che viene archiviato in una posizione ben definita del filesystem, consentendo così ad altri programmi di scoprire il pid di uno script in esecuzione.

Qualcuno può far luce su questo, o guidarmi ai dettagli di ciò che è contenuto nel file pid?

Risposte:


210

I file pid contengono l'id di processo (un numero) di un determinato programma. Ad esempio, Apache HTTPD può scrivere il suo numero di processo principale in un file pid - che è un normale file di testo, nient'altro che quello - e successivamente utilizzare le informazioni ivi contenute per fermarsi. Puoi anche usare queste informazioni per terminare tu stesso il processo, usandocat filename.pid | xargs kill


4
Perché non cercare il processo per nome allora? Perché preoccuparsi di mantenere i file .pid quando si può semplicemente eseguire "pidof $ process_name" e ottenere l'ID?
Shnatsel,

14
@Shnatsel: perché potrebbero esserci due processi con quel nome in esecuzione e devi sapere quale è responsabile di quel file PID. Ci sono altri motivi, maggiori dettagli sono disponibili qui: unix.stackexchange.com/questions/12815/…
user4815162342

2
In tal caso ci sarebbero 2 file pid e dovresti riscontrare lo stesso problema delle ricerche PID. Quindi i pidfile non fanno nulla di buono e complicano solo le cose in questo scenario, così come qualsiasi altro scenario a cui riesco a pensare. Ho il sospetto che siano apparsi prima di procfs o che siano usati come strumento di portabilità perché le interfacce procfs sono diverse su, ad esempio, Solaris sono abbastanza diverse da quelle su Linux.
Shnatsel,

3
Solo una cosa: echo filename.pid | xargs killnon ucciderà il processo. Immagino volessi dire: echo $(cat filename.pid) | xargs kill o echo <process ID> | xargs kill.
Alexandro de Oliveira,

2
@AlexandrodeOliveira C'è un vantaggio nell'usare echo e cat invece che semplicemente cat filename.pid | xargs kill?
Simon A. Eugster,

0

Pidfile contiene pid di un processo. È una convenzione che consente ai processi di lunga durata di essere più consapevoli di sé. Il processo del server può ispezionarlo per arrestarsi, o avere euristico che l'altra sua istanza sia già in esecuzione. I pidfile possono anche essere usati per uccidere manualmente il rischio in modo forzato, ad espkill -F <some.pid>


-1

Per comprendere i file pid, consultare questo DOC

Alcune volte ci sono alcune applicazioni che richiedono il supporto aggiuntivo di plugin e utilità extra. Quindi tiene traccia di questi programmi di utilità e processo di plugin che eseguono ID utilizzando questo file pid come riferimento.

Ecco perché ogni volta che riavvii un'applicazione, tutti i plug-in necessari e le app dipendenti devono essere riavviati poiché il file pid diventerà obsoleto.


8
Il tuo primo link non risponde davvero alla domanda.
Brian,

5
Sebbene il materiale collegato possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Toby Speight,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.