Linux - endroits alternatifs où stocker le fichier pid au lieu de / var / run


21

Comme écrit dans le titre, où dois-je laisser le script init écrire le fichier pid? existe-t-il des chemins standard que je devrais choisir à la place de / var / run?

Est-ce que / tmp pourrait être un bon endroit où le stocker ou y a-t-il des inconvénients?


6
Quel est le problème avec / var / run?
arved

Cette question de débordement de pile est pertinente: stackoverflow.com/q/5173636/1071869
Renan

le seul problème avec / var / run est que je n'y ai pas accès en écriture avec mon utilisateur ..
Murko

2
@Murko alors vous devez stocker le fichier pid dans le répertoire personnel de l'utilisateur.
Renan

Réponses:


22

En bref : vous pouvez le stocker n'importe où (par exemple, /tmpou /var/tmp), mais /var/runc'est la norme préférée.

/var/runest la norme de hiérarchie du système de fichiers :

Ce répertoire contient des informations sur le système décrivant le système depuis son démarrage. Les fichiers sous ce répertoire doivent être effacés (supprimés ou tronqués selon le cas) au début du processus de démarrage. Les programmes peuvent avoir un sous-répertoire de / var / run; ceci est encouragé pour les programmes qui utilisent plus d'un fichier d'exécution. [note 37]

Et une caractéristique souhaitable est que la plupart des distributions le nettoient automatiquement (contrairement à /tmpce qui n'est pas nettoyé au démarrage dans certaines distributions) - cela évite les fichiers pid périmés:

L'emplacement normal des fichiers pid est / var / run. La plupart des unités nettoieront ce répertoire au démarrage; sous Ubuntu, cela est réalisé par / var / exécuter un système de fichiers en mémoire (tmpfs).

C'est votre choix où le stocker, mais j'irais avec la norme.

Si vous n'y avez pas accès /var/run, vous devez stocker le fichier pid dans le répertoire personnel de l'utilisateur, par exemple ~/.my_app.pid.


9

S'il s'agit d'un accès en écriture non root /var/rundont vous avez besoin, notez qu'il existe des sous-répertoires /var/run/userpour les utilisateurs individuels. Vous avez juste besoin d'obtenir l'UID de l'utilisateur actuel:

/var/run/user/[$uid]

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.