« LINUX:Fichier contenant le numéro de processus » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(3 versions intermédiaires par le même utilisateur non affichées)
Ligne 4 : Ligne 4 :
__FORCETOC__
__FORCETOC__
=But=
=But=
A chaque programme lancé est attribué un numéro unique (PID). S'il est lancé deux fois, il en aura deux différents. Il est courant de retrouver ce numéro dans un fichier pour les services.
A chaque programme lancé est attribué un numéro unique (PID) (Process Identification). S'il est lancé deux fois, il en aura deux différents. Il est courant de retrouver ce numéro dans un fichier pour les services.  
 
Une pratique courante sous Unix est de tuer ou de recharger un processus via la commande "kill" utilisée fréquemment dans les fichiers de configuration des services.
 
Au démarrage du système Linux deux programmes sont lancés l'un pour l'interaction avec le matériel (PID=2) (kthreadd) et l'autre qui lancera tous les autres processus utiles à l'utilisation du système (PID=1) (systemd). Le PPID (Parent Process Identification) donne pour chaque processus lancé, le n° du processus qui l'a lancé. En remontant à la tête, on arrive à un de ces deux PID (1 ou 2) qui ont un PPID=0. Il ne faut pas les tuer sinon c'est comme si vous sciez la branche sur laquelle vous êtes assis. Normalement ils sont protégés. (Je n'ai pas essayé.)




Ligne 10 : Ligne 14 :
Usuellement ce fichier est créé dans le répertoire "'''/run'''" ou dans un sous-répertoire.
Usuellement ce fichier est créé dans le répertoire "'''/run'''" ou dans un sous-répertoire.


Si on y regarde de plus près, on remarque que "'''/run'''" est un "file system" créé dynamiquement en mémoire; ce qui signifie que si on arrête la machine, tous son contenu est perdu, effacé. Il faut donc recréer son contenu à chaque démarrage.
Si on y regarde de plus près, on remarque que "'''/run'''" est un "file system" créé dynamiquement en mémoire; ce qui signifie que si on arrête la machine, tout son contenu est perdu, effacé. Il faut donc recréer son contenu à chaque démarrage.
   
   


=Service=
=Service=
Cette tâche est effectuée par le programme "systemd-tmpfiles" qui est notamment lancé une fois au démarrage via le service "systemd-tmpfiles-setup.service". Il ne concerne pas seulement l'arborescence sous le répertoire "/run" mais également d'autres fichiers nécessaires au bon fonctionnement du système.
Cette tâche est effectuée par le programme "systemd-tmpfiles" qui est notamment lancé une fois au démarrage de la machine via le service "systemd-tmpfiles-setup.service". Il ne concerne pas seulement l'arborescence sous le répertoire "/run" mais également d'autres fichiers nécessaires au bon fonctionnement du système.
Un autre service existe, dédié aux fichiers de "/dev": "systemd-tmpfiles-setup-dev.service". Un troisième service se charge du nettoyage journalier: "systemd-tmpfiles-clean.timer".
 
Un autre service existe, dédié aux fichiers de "/dev": "systemd-tmpfiles-setup-dev.service".  
 
Un troisième service se charge du nettoyage journalier: "systemd-tmpfiles-clean.timer".




=Configuration=
=Configuration=
Ses fichiers de configuration se retrouvent dans le répertoire "/usr/lib/tmpfiles.d"; ils ont l’extension ".conf".
Ses fichiers de configuration se retrouvent dans les répertoires "/usr/lib/tmpfiles.d" ou "/etc/tmpfiles.d"; ils ont l’extension ".conf".


Chaque fichier comprend une ou plusieurs lignes, chacune dédiée à une tâche. Chaque ligne est constituée de sept colonnes:
Chaque fichier comprend une ou plusieurs lignes, chacune dédiée à une tâche. Chaque ligne est constituée de sept colonnes:
* Type de fichier (f pour fichier, d pour répertoire, L pour lien symbolique,...)
* Type de fichier ("f" pour fichier, "D" pour répertoire, "L" pour lien symbolique,...)
* Chemin (ou Path)
* Chemin (ou Path)
* Privilèges (ou Mode) comme on l'utilise avec la commande "chmod" en mode numérique
* Privilèges (ou Mode) comme on l'utilise avec la commande "chmod" en mode numérique
Ligne 28 : Ligne 35 :
* Groupe propriétaire
* Groupe propriétaire
* Age de la dernière modification dans un but de nettoyage
* Age de la dernière modification dans un but de nettoyage
* Argument: nécessaire par exemple pour la création de liens symboliques
* Argument (optionnel): nécessaire par exemple pour la création de liens symboliques
 
Une absence de valeur est signalée par un tiret ("-"). Voyez les Mans Pages pour plus de détails.
 


Une absence de valeur est signalée par un tiret ("-").
=Exemple=
J'ai été confronté à ce problème sous Ubuntu. J'utilisais une application WEB "NagioSQL" qui permet de configurer le logiciel de surveillance réseau "Nagios". Il avait besoin du fichier "/run/nagios/nagios.pid" défini dans la configuration de Nagios via l'option "lock_file". Mais problème, le répertoire "/run/nagios" n'existe pas. Et donc ce fichier ne pouvait être créé.


J'ai donc créé le fichier "/usr/lib/tmpfiles.d/nagios.conf" dont voici le contenu:
----
D /run/nagios 0755 nagios nagios -
----
On crée le répertoire "/run/nagios" appartenant à l'utilisateur/groupe "nagios/nagios" qui exécute le service Nagios avec les privilèges "0755".





Dernière version du 1 août 2022 à 15:17


retour au menu de Systemd


But

A chaque programme lancé est attribué un numéro unique (PID) (Process Identification). S'il est lancé deux fois, il en aura deux différents. Il est courant de retrouver ce numéro dans un fichier pour les services.

Une pratique courante sous Unix est de tuer ou de recharger un processus via la commande "kill" utilisée fréquemment dans les fichiers de configuration des services.

Au démarrage du système Linux deux programmes sont lancés l'un pour l'interaction avec le matériel (PID=2) (kthreadd) et l'autre qui lancera tous les autres processus utiles à l'utilisation du système (PID=1) (systemd). Le PPID (Parent Process Identification) donne pour chaque processus lancé, le n° du processus qui l'a lancé. En remontant à la tête, on arrive à un de ces deux PID (1 ou 2) qui ont un PPID=0. Il ne faut pas les tuer sinon c'est comme si vous sciez la branche sur laquelle vous êtes assis. Normalement ils sont protégés. (Je n'ai pas essayé.)


Emplacement

Usuellement ce fichier est créé dans le répertoire "/run" ou dans un sous-répertoire.

Si on y regarde de plus près, on remarque que "/run" est un "file system" créé dynamiquement en mémoire; ce qui signifie que si on arrête la machine, tout son contenu est perdu, effacé. Il faut donc recréer son contenu à chaque démarrage.


Service

Cette tâche est effectuée par le programme "systemd-tmpfiles" qui est notamment lancé une fois au démarrage de la machine via le service "systemd-tmpfiles-setup.service". Il ne concerne pas seulement l'arborescence sous le répertoire "/run" mais également d'autres fichiers nécessaires au bon fonctionnement du système.

Un autre service existe, dédié aux fichiers de "/dev": "systemd-tmpfiles-setup-dev.service".

Un troisième service se charge du nettoyage journalier: "systemd-tmpfiles-clean.timer".


Configuration

Ses fichiers de configuration se retrouvent dans les répertoires "/usr/lib/tmpfiles.d" ou "/etc/tmpfiles.d"; ils ont l’extension ".conf".

Chaque fichier comprend une ou plusieurs lignes, chacune dédiée à une tâche. Chaque ligne est constituée de sept colonnes:

  • Type de fichier ("f" pour fichier, "D" pour répertoire, "L" pour lien symbolique,...)
  • Chemin (ou Path)
  • Privilèges (ou Mode) comme on l'utilise avec la commande "chmod" en mode numérique
  • Utilisateur propriétaire
  • Groupe propriétaire
  • Age de la dernière modification dans un but de nettoyage
  • Argument (optionnel): nécessaire par exemple pour la création de liens symboliques

Une absence de valeur est signalée par un tiret ("-"). Voyez les Mans Pages pour plus de détails.


Exemple

J'ai été confronté à ce problème sous Ubuntu. J'utilisais une application WEB "NagioSQL" qui permet de configurer le logiciel de surveillance réseau "Nagios". Il avait besoin du fichier "/run/nagios/nagios.pid" défini dans la configuration de Nagios via l'option "lock_file". Mais problème, le répertoire "/run/nagios" n'existe pas. Et donc ce fichier ne pouvait être créé.

J'ai donc créé le fichier "/usr/lib/tmpfiles.d/nagios.conf" dont voici le contenu:


D /run/nagios 0755 nagios nagios -

On crée le répertoire "/run/nagios" appartenant à l'utilisateur/groupe "nagios/nagios" qui exécute le service Nagios avec les privilèges "0755".




retour au menu de Systemd