Linux – luoghi alternativi where memorizzare il file pid anziché / var / run

Come scritto nel titolo, where dovrei lasciare che l'init script scrivere il file pid? ci sono i routes standard che dovrei scegliere invece che l'esecuzione / var / run?

Potrebbe / tmp essere un buon posto where memorizzarlo o ci sono inconvenienti in questo?

In breve : potresti memorizzarla ovunque (ad esempio, /tmp o /var/tmp ), ma /var/run è lo standard preferito.

/var/run è la norma di gerarchia file system :

Questa directory contiene i dati di informazioni di sistema che descrivono il sistema da quando è stato avviato. I file sotto questa directory devono essere eliminati (rimossi o troncati come appropriato) all'inizio del process di avvio. I programmi possono avere una sottodirectory di / var / run; questo è incoraggiato per i programmi che utilizzano più di un file di runtime [nota 37]

E una caratteristica auspicabile è che la maggior parte delle distribuzioni lo pulisce automaticamente (a differenza di /tmp che non viene pulita durante l'avvio in alcune distros) – per evitare file stali pid:

La posizione normale per pidfiles è / var / run. La maggior parte delle Unizie pulirà questa directory durante il boot; in Ubuntu questo è ottenuto da / var / eseguire un filesystem in-memory (tmpfs).

È la tua scelta where memorizzarlo, ma vorrei andare con lo standard.

Se non si dispone dell'accesso a /var/run , è necessario memorizzare il file pid nella directory principale dell'utente, ad esempio ~/.my_app.pid .

Se l'accesso a /var/run per l'accesso a non-root è necessario, osservi che ci sono sottodirectory in /var/run/user per singoli utenti. Devi solo get l'UID dell'attuale utente:

/var/run/user/[$uid]