Linux: luoghi alternativi in ​​cui archiviare il file pid anziché / var / run


21

Come scritto nel titolo, dove devo lasciare che lo script init scriva il file pid? ci sono percorsi standard che dovrei scegliere al posto di / var / run?

Potrebbe / tmp essere un buon posto dove archiviarlo o ci sono degli svantaggi in questo?


6
Cosa c'è di sbagliato in / var / run?
Archiviato il

Questa domanda Stack Overflow è rilevante: stackoverflow.com/q/5173636/1071869
Renan

l'unica cosa sbagliata con / var / run è che non ho accesso in scrittura con il mio utente ad esso ..
Murko

2
@Murko quindi dovresti archiviare il file pid nella home directory dell'utente.
Renan,

Risposte:


22

In breve : puoi memorizzarlo ovunque (diciamo, /tmpo /var/tmp), ma /var/runè lo standard preferito.

/var/runè lo standard di gerarchia dei filesystem :

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

E una caratteristica desiderabile è che la maggior parte delle distro lo pulisce automaticamente (diversamente da ciò /tmpche non viene pulito all'avvio in alcune distro) - questo evita i file PID obsoleti:

La posizione normale per i pidfile è / var / run. La maggior parte degli unici pulirà questa directory all'avvio; sotto Ubuntu questo è ottenuto da / var / run un filesystem in-memory (tmpfs).

È la tua scelta dove conservarlo, ma vorrei andare con lo standard.

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


9

Se è necessario l'accesso in scrittura non root a /var/runquello di cui hai bisogno, tieni presente che ci sono sottodirectory /var/run/userper i singoli utenti. Hai solo bisogno di ottenere l'UID dell'utente corrente:

/var/run/user/[$uid]

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.