/proc : surveiller votre système Linux

malekalmorte

Création :

24 septembre 2023

Modification :

Le système de fichiers proc (procfs) est un système de fichiers virtuel créé à la volée lorsque le système démarre et dissous au moment de l’arrêt du système. Il contient des informations utiles sur les processus en cours d’exécution et est considéré comme un centre de contrôle et d’information pour le noyau. Le système de fichiers proc fournit également un moyen de communication entre l’espace du noyau et l’espace utilisateur.

Dans ce guide complet, vous allez apprendre tout ce qu’il faut savoir sur le répertoire /proc de Linux (qu’est-ce que /proc, à quoi il sert et quel est con contenu et comment le consulter.

/proc : surveiller votre système Linux

Qu’est-ce que /proc dans Linux

Le système de fichiers /proc sert d’interface aux structures de données du noyau et aux informations d’exécution, ce qui permet aux utilisateurs et aux applications d’accéder à des informations détaillées sur les processus, la configuration du système, le matériel et autres, en exposant ces données à travers une hiérarchie de fichiers virtuels.

Il est parfois appelé pseudo-système de fichiers d’informations sur les processus.
Il ne contient pas de « vrais » fichiers, mais des informations sur le système en cours d’exécution (par exemple, la mémoire du système, les périphériques montés, la configuration matérielle, etc.)
C’est pourquoi il peut être considéré comme un centre de contrôle et d’information pour le noyau.
En fait, un grand nombre d’utilitaires système sont simplement des appels aux fichiers de ce répertoire.
Par exemple, ‘lsmod’ est la même chose que ‘cat /proc/modules’ tandis que ‘lspci’ est un synonyme de ‘cat /proc/pci’. En modifiant les fichiers situés dans ce répertoire, vous pouvez même lire/modifier les paramètres du noyau (sysctl) pendant que le système fonctionne.

Beaucoup d’utilitaires utilisent ces informations qu’ils mettent en forme pour afficher des données.
Par exemple, la commande ps peut consulter /proc pour afficher les processus en cours, l’état de la mémoire Linux, les PID, etc.

Comment naviguer dans /proc sous Linux

Lorsque vous naviguez dans le répertoire /proc, vous remarquez qu’il contient des fichiers à l’apparence familière, puis toute une série de répertoires numérotés, chacun correspondant à un processus en cours d’exécution sur le système.

cd /proc
ls
Comment naviguer dans /proc sous Linux

Quels sont les répertoires importants de /proc

Ces répertoires numérotés représentent les processus, mieux connus sous le nom d’ID de processus (PID), et, à l’intérieur de ceux-ci, une commande qui les occupe. Les fichiers contiennent des informations sur le système, telles que la mémoire (meminfo), le processeur (cpuinfo) et les systèmes de fichiers disponibles.

Il existe de nombreux répertoires contenant des informations sur l’activité, l’état du système ou du matériel.
Il serait donc assez fastidieux de tous les énumérer.
Voici une liste des principaux répertoires de /proc

Répertoire de /procDescription
/proc/apmInformations sur la gestion avancée de l’énergie
/proc/busRépertoire contenant des informations spécifiques aux bus
/proc/consoleInformations sur les consoles actuelles, y compris le tty
/proc/cpuinfoListe des informations sur le(s) processeur(s) du système, telles que le modèle, la vitesse et le nombre de cœurs
/proc/cryptoListe des modules cryptographiques disponibles
/proc/diskstatsLes informations (y compris les numéros de périphérique) pour chacun des périphériques de disque logiques
/proc/dmaInformations sur les canaux DMA actuels
/proc/fbPériphérique Framebuffer
/proc/filesystemsListe des systèmes de fichiers pris en charge par le noyau au moment de l’établissement de la liste
/proc/kmsgContenir les messages émis par le noyau
/proc/interruptsVérifier quelles interruptions sont actuellement utilisées
/proc/ioportsUtilisation du port E/S
/proc/locksFichiers actuellement verrouillés par le noyau
/proc/meminfoListe les détails sur l’utilisation de la mémoire et les statistiques qui contiennent la quantité totale de mémoire, la mémoire libre et la mémoire utilisée par chaque processus
/proc/modulesListe des modules chargés
/proc/mountsListe de tous les montages utilisés par le système.
/proc/partitionsTable des partitions
/proc/PIDContient des informations sur un processus spécifique, où PID est l’identifiant du processus
/proc/netAffiche toutes les informations réseau
/proc/sysListe des paramètres de configuration et d’exécution du noyau
/proc/loadavgAffiche la moyenne de la charge du système sur différents intervalles de temps tels que 1, 5 et 15 minutes.
/proc/selfUn lien symbolique vers le répertoire du processus
/proc/statContient diverses statistiques sur le système, telles que le nombre de processus en cours d’exécution, le nombre d’interruptions et le temps passé dans chaque état de l’unité centrale.
/proc/swapInformations sur l’espace d’échange
/proc/ttyInformations sur les terminaux actuels
/proc/uptimeContient la durée de fonctionnement du système
/proc/versionStocke la version du noyau Linux, le numéro de distribution, le numéro de version de gcc (utilisé pour compiler le noyau) et toute autre information pertinente relative à la version du noyau en cours d’exécution
Les répertoires de /proc sous Linux

Pour une liste plus complète, consultez : https://www.kernel.org/doc/html/latest/filesystems/proc.html

Comment extraire des informations système

Etant donné que la plupart des fichiers sont des fichiers texte, vous pouvez consulter le contenu à l’aide de la commande cat.
Par exemple, pour obtenir les informations sur la configuration matérielles du processeur, il faut consultez le contenu de /proc/cpuinfo.
Pour cela, utilisez la commande suivante :

cat /proc/cpuinfo
/proc/cpuinfo : Comment savoir le processeur dans Linux

Le fichier /proc/meminfo est utilisé pour afficher des informations sur l’utilisation de la mémoire et les statistiques d’un système Linux. Il contient un aperçu de diverses mesures liées à la mémoire, qui peuvent être utiles pour surveiller les performances du système et l’utilisation des ressources.

 /proc/meminfo dans Linux

/proc/PID/ : extraire des informations sur les processus

Dans les répertoires numérotés de /proc, vous trouverez quelques fichiers et liens. Rappelez-vous que les numéros de ces répertoires correspondent au PID de la commande qui y est exécutée.

Par exemple, en naviguant vers /proc/, vous obtiendrez des informations telles que :

  • /proc/cmdline – Arguments de la ligne de commande utilisés pour lancer le processus
  • /proc/status – Informations détaillées sur l’état, y compris l’utilisation de la mémoire et les statistiques du processus
  • /proc/fd – Liens symboliques vers les fichiers ouverts par le processus

Par exemple, visualisons le contenu du répertoire lié au processus dont le PID est 132508 :

cd /proc/132508/
ls
/proc/PID/ : extraire des informations sur les processus

Puis, consultons le contenu du fichier status :

cat /proc/132508/status

Nous pouvons voir dans le fichier d’état que ce processus appartient à rcu_tasks_rude_kthread. Son état actuel est idle, et son ID de processus est 132508, évidemment.

Nous pouvons également voir qui l’exécute, puisque UID et GID sont à 0, ce qui indique que ce processus appartient à l’utilisateur root.

/proc/PID/ : extraire des informations sur les processus
Répertoire de /procDescription
/proc/PID/cmdlineArguments de la ligne de commande
/proc/PID/cpuL’unité centrale actuelle et la dernière unité centrale dans laquelle il a été exécuté
/proc/PID/cwdLien vers le répertoire de travail actuel
/proc/PID/environValeurs des variables d’environnement
/proc/PID/exeLien vers l’exécutable de ce processus
/proc/PID/fdRépertoire contenant tous les descripteurs de fichiers
/proc/PID/pagemapTableau des pages
/proc/PID/mapsCartes mémoire vers les exécutables et les fichiers de bibliothèque
/proc/PID/memMémoire détenue par ce processus
/proc/PID/rootLien vers le répertoire racine de ce processus
/proc/PID/statÉtat du processus
/proc/PID/statmInformations sur l’état de la mémoire du processus
/proc/PID/stackRapporte la trace complète de la pile, activée via CONFIG_STACKTRACE
/proc/PID/status
État du processus sous une forme lisible par l’homme
Le répertoire /proc/PID/ dans Linux

A propros de malekalmorte

malekal-site-logo-150

Passionné par l'informatique depuis très jeune, j'aide les internautes sur les forums depuis 2005 pour résoudre leurs tracas informatiques.
Je vous propose par la même occasion ce site avec de nombreux tutoriels pour vous aider aussi à résoudre de manière autonome les problèmes informatiques du quotidien.