Man Proc – Définition des paramètres dans /proc

NOM

proc - Pseudo-système de fichiers d’informations sur les processus.

DESCRIPTION

Le système de fichier proc est un pseudo-système de fichiers qui est utilisé comme interface avec les structures de données du noyau. Il est généralement monté sur /proc. La plupart des fichiers sont en lecture seule, mais quelques uns permettent la modification de variables du noyau.

La description suivante fournit un aperçu de la hiérarchie /proc.

/proc/[nombre]
Il existe un sous-répertoire pour chaque processus en cours. Le sous-répertoire prend comme nom le PID du processus. Chaque sous-répertoire contient les pseudo-fichiers et pseudo-répertoires suivants.
/proc/[nombre]/cmdline
Ce fichier contient la ligne de commande complète du processus, sauf si le processus a été swappé, ou s’il s’agit d’un zombie. Dans ces deux derniers cas, il n’y a rien dans le fichier : une lecture reviendra après avoir lu 0 caractère. Les arguments de la ligne de commande apparaissent comme un ensemble de chaînes séparées de caractères NUL, avec un octet NUL supplémentaire après le dernier argument.
/proc/[nombre]/cwd

(Current Working Directory) il s’agit d’un lien sur le répertoire de travail courant du processus. Pour obtenir le cwd du processus 20 par exemple, vous pouvez-faire ceci :

Notez que la commande directe **pwd** est souvent une commande interne du shell, et qu'elle risque de ne pas fonctionner correctement. Avec Bash, utilisez pwd -P.

_/proc/[nombre]/environ_
:   Ce fichier contient l'environnement du processus. Les entrées sont séparées par des caractères nuls, et il devrait y en avoir un à la fin du fichier. Ainsi, pour afficher l'environnement du processus numéro 1, utilisez :</p>

(cat /proc/1/environ; echo) | tr “\000” “\n”```

(Pour savoir à quoi cela peut bien servir, voyez lilo.)

/proc/[nombre]/exe
Sous Linux 2.2 et 2.4, exe est un lien symbolique représentant le chemin réel de la commande en cours d’exécution. Le lien exe peut être déréférencé normalement, en ouvrant exe on ouvrira le fichier exécutable. Vous pouvez même taper /proc/[pid]/exe pour lancer une copie du même processus que celui du pid indiqué. Sous Linux 2.0 et précédents, exe était un pointeur sur le fichier binaire exécuté, qui apparaissait sous forme de lien symbolique. Un appel-système readlink sur le fichier spécial exe renvoyait une chaîne de la forme :

Par exemple, [0301]:1502 correspond à l’i-noeud 1502 sur le périphérique de numéro majeur 03 (disque IDE, MFM, etc.) et mineur 01 (première partition du premier disque). On peut utiliser find avec l’option -inum pour retrouver le fichier exécutable à partir du numéro d’i-noeud.

/proc/[nombre]/fd
Il s’agit d’un sous-répertoire contenant une entrée pour chaque fichier que le processus a ouvert. Chaque entrée a le descripteur du fichier pour nom, et est représentée par un lien symbolique sur le vrai fichier (de la même manière que l’entrée exe). Ainsi, 0 correspond à l’entrée standard, 1 à la sortie standard, 2 à la sortie d’erreur, etc…

Les programmes qui prennent un nom de fichier d’entrée mais qui ne lisent pas l’entrée standard, ou qui écrivent dans un fichier sans écrire sur la sortie standard peuvent être trompés ainsi (on suppose que l’option -e indique le nom du fichier d’entrée et l’option -s le nom du fichier de sortie) :

Ceci transforme le programme en filtre. Toutefois, cela ne fonctionne pas avec les programmes qui effectuent des positionnements (avec lseek) dans leurs fichiers. On ne peut pas faire de positionnement sur les fichiers du répertoire fd./proc/self/fd/N est approximativement la même chose que /dev/fd/N dans certains systèmes UNIX et pseudo-UNIX. D'ailleurs la plupart des scripts MAKEDEV de Linux lient symboliquement /dev/fd sur [..]/proc/self/fd.

_/proc/[nombre]/maps_
:   Un fichier contenant les régions mémoire actuellement projetées et leurs autorisations d'accès. Le format est :</p>

adresses perm. décalage périph i-noeud chemin d’accès 08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm 08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm 08058000-0805b000 rwxp 00000000 00:00 0 40000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so 40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so 4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so 40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so 4013e000-40142000 rw-p 00000000 00:00 0 bffff000-c0000000 rwxp 00000000 00:00 0

Où _adresses_ correspond à l'espace d'adressage du processus qui l'occupe, _perm_ est un ensemble d'autorisations :

r = lecture w = écriture x = exécution s = partage p = privé (copie si écriture)

Le _décalage_ se mesure dans le fichier, _périph_ correspond à la paire (majeur:mineur), et l'_i-noeud_ se trouve sur ce périphérique. 0 signifie qu'aucun i-noeud n'est associé avec cette zone mémoire, comme c'est le cas avec bss.

Sous Linux 2.0, il n'y a pas de champ indiquant le chemin d'accès.

_/proc/[nombre]/mem_
:   Par l'intermédiaire de ce fichier on peut accéder à la mémoire d'un processus, au travers des appels open, read, et fseek.

_/proc/[nombre]/root_
:   Linux, et Unix en général, supporte une notion de racine du système de fichiers pour chaque processus, configurable avec l'appel système chroot. Le fichier root pointe sur la racine du système de fichiers, et se comporte comme exe, fd/*...

_/proc/[nombre]/stat_
:   Informations sur l'état du processus. Ceci est utilisé par ps. La définition se trouve dans _/usr/src/linux/fs/proc/array.c_.

Les champs sont, dans l'ordre, et avec leurs formats de type scanf :

_pid_ %d
:   L'ID du processus

_comm_ %s
:   Le nom du fichier exécutable entre parenthèses, que l'exécutable soit swappé ou non.

_state_ %c
:   Un caractère parmi " RSDZTW " indiquant si le processus est en cours d'exécution (R running), endormi dans un état interruptible (S sleeping), endormi de manière in-interruptible (D), zombie (Z), suivi pour débogage ou arrêté par un signal (T traced) ou swappé (W).

_ppid_ %d
:   Le PID du processus parent.

_pgrp_ %d
:   L'ID du groupe de processus.

_session_ %d
:   L'ID de session du processus.

:   _tty_nr_ %d Le tty que le processus utilise.

_tpgid_ %d
:   L'ID de groupe du processus contrôlant le terminal auquel le processus est connecté.

_flags_ %lu
:   Attributs du processus. Le bit math est 4 (décimal), et le bit de suivi est 10 (décimal) [NDT ?]

_minflt_ %lu
:   Le nombre de fautes mineures que le processus a déclenchées - celles qui n'ont pas nécessité de chargement de page depuis le disque.

_cminflt_ %lu
:   Le nombre de fautes mineures commises par le processus et ses descendants.

_majflt_ %lu
:   Le nombre de fautes majeures que le processus a déclenchées - celles qui ont nécessité un chargement de page depuis le disque.

_cmajflt_ %lu
:   Le nombre de fautes majeures commises par le processus et ses descendants.

_utime_ %ld
:   Le temps passé (nombre de jiffies) en mode utilisateur par le processus.

_stime_ %ld
:   Le temps passé en mode noyau par le processus.

_cutime_ %ld
:   Le temps passé en mode utilisateur par le processus et ses descendants.

_cstime_ %ld
:   Le temps passé en mode noyau par le processus et ses descendants.

_priority_ %ld
:   La valeur de courtoisie standard ; jamais négative dans le noyau.

_nice_ %ld
:   La valeur de courtoisie dans l'intervalle 19 (courtois) à -19 (agressif).

:   __ %ld La valeur zéro codée en dur remplace un champ supprimé ici.

_itrealvalue_ %lu
:   La durée (en nombre de jiffies) avant le prochain signal SIGALRM envoyé au processus par un timer.

_starttime_ %ld
:   Temps (en jiffies) auquel le processus a démarré depuis le boot du système.

_vsize_ %lu
:   Taille de la mémoire virtuelle en octets.

_rss_ %lu
:   RSS. Taille de l'ensemble résident : nombre de pages dont le processus dispose en mémoire réelle, moins 3 pour des raisons administratives. Il s'agit juste des pages contenant les espaces de code, donnée et pile. Ceci n'inclut ni les pages en attente de chargement ni celles qui ont été swappées.

_rlim_ %lu
:   Limite actuelle en octets du RSS du processus (classiquement 2,147,483,647).

_startcode_ %lu
:   Adresse au-dessus de laquelle le code du programme peut s'exécuter.

_endcode_ %lu
:   Adresse en-dessous de laquelle le code du programme peut s'exécuter.

_startstack_ %lu
:   Adresse de début de la pile.

_kstkesp_ %lu
:   Valeur actuelle du pointeur de pile 32 bits ESP, telle qu'on la trouve dans la page de pile du noyau pour ce processus.

_kstkeip_ %lu
:   EIP actuel (Pointeur d'instructions 32 bits).

_signal_ %ld
:   Masque des signaux en attente (habituellement 0).

_blocked_ %ld
:   Masque des signaux bloqués (souvent 0, 2 pour certains shells).

_sigignore_ %ld
:   Masque des signaux ignorés.

_sigcatch_ %ld
:   Masque des signaux interceptés.

_wchan_ %lu
:   Il s'agit du " canal " sur lequel le processus attend. C'est l'adresse d'un appel système, dont on peut retrouver le nom dans une table si besoin (il faut avoir un fichier /etc/psdatabase à jour, et essayer _ps -l_ pour voir le champs WCHAN).

_nswap_ %lu
:   Nombre de pages swappées (non maintenu).

_cnswap_ %lu
:   Champ _nswap_ cumulé avec les processus enfants.

_exit_signal_ %d
:   Signal à envoyer au parent lors de la mort du processus.

_processor_ %d
:   Numéro du processeur utilisé lors de la dernière exécution.

_/proc/[nombre]/statm_
:   Fournit des informations sur l'état des pages mémoire. Les colonnes sont : size taille totale du programme resident taille résidant en mémoire share pages partagées trs taille du code (segment text) drs données et pile lrs bibliothèques dt pages touchées (marquées dirty)

_/proc/[nombre]/status_
:   Fournit l'essentiel des informations de _/proc/[nombre]/stat_ et _/proc/[nombre]/statm_ dans un format plus facile à lire pour les humains.

_/proc/apm_
:   La version du système de gestion de puissance APM et les informations sur l'état de la batterie si la constante CONFIG_APM était définie à la compilation du noyau.

_/proc/bus_
:   Contient des sous-répertoires pour les bus installés.

_/proc/bus/pccard_
:   Répertoire pour les périphériques Pcmcia si la constante CONFIG_PCMCIA était définie à la compilation du noyau.

_/proc/bus/pccard/drivers_
:

_/proc/bus/pci_
:   Contient divers sous-répertoires de bus, et des pseudo-fichiers recélant des informations sur les bus pci, les périphériques installés et leurs pilotes. Certains de ces fichiers ne sont pas en Ascii pur.

_/proc/bus/pci/devices_
:   Informations sur les périphériques pci. Peut-être consulté grâce à lspci et setpci.

_/proc/cmdline_
:   Arguments passés au noyau Linux lors du boot. Généralement par l'intermédiaire d'un gestionnaire de boot comme lilo.

_/proc/cpuinfo_
:   Il s'agit d'informations dépendantes de l'architecture et du processeur utilisé. Les deux seules entrées toujours présentes sont _processor_ qui donne le nombre de processeurs et _bogomips_, une constante système calculée pendant l'initialisation du noyau. Les machines SMP ont une ligne d'information pour chaque processeur.

_/proc/devices_
:   Liste littérale des groupes de périphériques et des numéros majeurs. Ceci peut servir dans les scripts MAKEDEV pour rester cohérent avec le noyau.

_/proc/dma_
:   Il s'agit d'une liste des canaux DMA (Direct Memory Acess) _ISA_ en cours d'utilisation.

_/proc/driver_
:   Répertoire vide.

_/proc/execdomains_
:   Liste des domaines d'exécution (personnalités).

_/proc/fb_
:   Information sur la mémoire d'écran Frame Buffer, lorsque la constante CONFIG_FB a été définie lors de la compilation du noyau.

_/proc/filesystems_
:   Une liste des systèmes de fichiers qui ont été compilés dans le noyau. Par exemple, ceci sert à mount pour essayer les différents systèmes de fichiers si on ne lui précise rien.

_/proc/fs_
:   Sous-répertoire vide.

_/proc/ide_
:   Le répertoire _/proc/ide_ existe sur les systèmes ayant un bus ide. Il y a des sous-répertoires pour chaque canal ide et les périphériques attachés. Les fichiers contiennent :</p>

    ```cache              taille du tampon en ko
capacity           nombre de secteurs
driver             version du pilote
geometry           géométries physique et logique
identify           identification en hexadécimal
media              type de support
model              numéro de fabricant
settings           configuration du pilote
smart_thresholds   seuils en hexadécimal
smart_values       paramètres in hexadécimal```

L'utilitaire hdparm fournit un accès convivial à ces informations.

_/proc/interrupts_
:   Il s'agit du nombre d'interruptions reçues pour chaque IRQ sur les architectures i386 (au moins). Format facile à lire, en ASCII.

_/proc/iomem_
:   Projection des entrées-sorties en mémoire, depuis Linux 2.4.

_/proc/ioports_
:   Il s'agit d'une liste des régions d'entrées-sorties en cours d'utilisation.

_/proc/kcore_
:   Ce fichier représente la mémoire physique du système sous forme de fichier ELF core. À l'aide de ce pseudo-fichier et d'un binaire du noyau non _strip_é (/usr/src/linux/vmlinux), gdb peut servir à inspecter l'état de n'importe quelle structure de données du noyau.

La longueur totale de ce fichier est la taille de la mémoire RAM physique plus 4 Ko.

_/proc/kmsg_
:   Ce fichier peut être utilisé à la place de l'appel-système syslog pour journaliser les messages du noyau. Un processus doit avoir les privilèges super-utilisateur pour lire ce fichier, et un seul processus à la fois peut le lire. On NE DOIT PAS lire ce fichier si un processus syslogd tourne et utilise l'appel-système syslog pour journaliser les messages du noyau.

Les informations de ce fichier sont consultés par le programme dmesg.

_/proc/ksyms_
:   Ce fichier contient les symboles exportés par le noyau et utilisés par les outils des _modules_(X) pour assurer l'édition dynamique des liens des modules chargeables.

_/proc/loadavg_
:   Ce fichier indique les charges système (nombre de tâches en attente d'exécution) moyennées sur 1, 5, et 15 minutes. Suivent le nombre d'utilisateurs connectés séparé par un slash du nombre de processus en cours. On trouve enfin le nombre de processus s'étant exécutés depuis le démarrage du système. Il s'agit des informations fournies par exemple par le programme uptime.

_/proc/locks_
:   Ce fichier montre les verrouillages actuels des fichiers. flock et fcntl.

_/proc/malloc_
:   Ce fichier n'est présent que si CONFIGDEBUGMALLOC a été défini lors de la compilation du noyau.

_/proc/meminfo_
:   Sert au programme free pour indiquer les quantités de mémoires (physique et swap) libres et utilisées, ainsi que la mémoire partagée et les tampons utilisés par le noyau.

Ce fichier se présente sous la même forme que free mais en octets et non pas en Ko.

_/proc/mounts_
:   Il s'agit d'une liste de tous les systèmes de fichiers actuellement montés sur le système. Le format de ce fichier est documenté dans fstab.

_/proc/modules_
:   Une liste littérale des modules qui ont été chargés par le système. Voir lsmod.

_/proc/mtrr_
:   Memory Type Range Registers. Voir _/usr/src/linux/Documentation/mtrr.txt_ pour des détails.

_/proc/net_
:   Ce répertoire regroupe divers pseudo-fichiers relatifs aux fonctionnalités réseau. Chaque fichier fournit des informations concernant une couche particulière. Ces fichiers sont en ASCII et sont donc lisible grâce à cat, mais le programme standard netstat fournit un accès plus propre à ces données.

_/proc/net/arp_
:   Ce fichier contient un affichage ASCII lisible des tables ARP du noyau servant à la résolution d'adresse. Il indique à la fois les entrées apprises dynamiquement et celles pré-programmées. Le format est le suivant :</p>

    ```Adresse IP    Matériel  Attribut   Adresse matérielle Masque  Périph.
192.168.0.50   0x1       0x2       00:50:BF:25:68:F3   *      eth0
192.168.0.250  0x1       0xc       00:00:00:00:00:00   *      eth0```

Où l'adresse IPv4 est celle de la machine, le type de matériel est issu de la RFC 826. L'attribut est le champ _arp_flags_ interne de la structure ARP (définie dans /usr/include/linux/if_arp.h) et l'adresse matérielle est celle de la couche physique de l'adaptateur correspondant à l'adresse IP (si elle est connue).

_/proc/net/dev_
:   Ce pseudo-fichier contient des informations d'état sur les périphériques réseau. On y trouve les nombres de paquets émis et reçus, le nombre d'erreurs et de collisions, ainsi que d'autres données statistiques. Ce fichier est utilisé par le programme ifconfig**(8).** Le format est le suivant :</p>

    ```Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo: 2776770   11307    0    0    0     0          0         0  2776770   11307    0    0    0     0       0          0
  eth0: 1215645    2751    0    0    0     0          0         0  1782404    4324    0    0    0   427       0          0
  ppp0: 1622270    5552    1    0    0     0          0         0   354130    5669    0    0    0     0       0          0
  tap0:    7714      81    0    0    0     0          0         0     7714      81    0    0    0     0       0          0```

_/proc/net/dev_mcast_
:   Définie dans _/usr/src/linux/net/core/dev_mcast.c_ :</p>

    ```indx ifterface_name  dmi_u dmi_g dmi_address
2    eth0            1     0     01005e000001
3    eth1            1     0     01005e000001
4    eth2            1     0     01005e000001```

_/proc/net/igmp_
:   Protocole Internet Group Management Protocol. Défini dans _/usr/src/linux/net/core/igmp.c_.

_/proc/net/rarp_
:   Ce fichier emploie le même format que le fichier _arp_, et contient la projection inverse de la base de données utilisée pour fournir les services de recherche inversée de rarp. Si RARP n'est pas configuré dans le noyau, ce fichier est absent.

_/proc/net/raw_
:   Fournit une copie de la table des sockets RAW (brutes). La plupart des informations ne sert que pour le débogage. La valeur " sl " est l'emplacement de la socket dans la table de hachage du noyau. Le champ " local_address " contient l'adresse locale ainsi que le numéro du protocole utilisé. " St " est l'état interne de la socket. Les " tx_queue " et " rx_queue " représentent les files d'attente en émission et en réception, en terme d'utilisation mémoire par le noyau. Les champs " tr ", " tr->when " et " rexmits " ne sont pas utilisés par RAW. Le champ uid contient l'identificateur EUID du créateur de la socket.

_/proc/net/snmp_
:   Ce fichier contient les données ASCII nécessaires pour les bases d'information d'un agent SNMP pour la gestion de IP, ICMP, TCP et UDP.

_/proc/net/tcp_
:   Contient une copie de la table des socket TCP. La plupart des informations ne sert que pour le débogage. La valeur " sl " est l'emplacement de la socket dans la table de hachage du noyau. Le champ " local_address " contient l'adresse locale ainsi que le numéro de port. Le champ " remote_address " contient l'adresse distante et le numéro de port (si la socket est connectée). " St " est l'état interne de la socket. Les " tx_queue " et " rx_queue " représentent les files d'attente en émission et en réception, en terme d'utilisation mémoire par le noyau. Les champs " tr ", " tr->when " et " rexmits " contiennent des données internes au noyau ne servant qu'au débogage. Le champ uid contient l'identificateur EUID du créateur de la socket.

_/proc/net/udp_
:   Contient une copie de la table des socket UDP. La plupart des informations ne sert que pour le débogage. La valeur " sl " est l'emplacement de la socket dans la table de hachage du noyau. Le champ " local_address " contient l'adresse locale ainsi que le numéro de port. Le champ " remote_address " contient l'adresse distante et le numéro de port (si la socket est connectée). " St " est l'état interne de la socket. Les " tx_queue " et " rx_queue " représentent les files d'attente en émission et en réception, en terme d'utilisation mémoire par le noyau. Les champs " tr ", " tr->when " et " rexmits " ne sont pas utilisés par UDP. Le champ uid contient l'identificateur EUID du créateur de la socket. Le format est :</p>

    ```sl  local_address rem_address   st tx_queue rx_queue tr rexmits  tm->when uid
 1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
 1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
 1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0```

_/proc/net/unix_
:   Liste des sockets dans le domaine UNIX présentes sur le système, et leurs états. Le format est :</p>

    ```Num RefCount Protocol Flags    Type St Path
 0: 00000002 00000000 00000000 0001 03
 1: 00000001 00000000 00010000 0001 01 /dev/printer```

Où " Num " est l'emplacement dans la table du noyau. " Refcount " est le nombre d'utilisateurs de la socket. " Protocol " est toujours 0 pour le moment. " Flags " représente un attribut interne du noyau correspondant à l'état de la socket. Le type est toujours 1 pour le moment (Les sockets de datagrammes dans le domaine Unix ne sont pas encore supportés par le noyau). " St " est un état interne de la socket, et Path correspond à l'éventuel chemin d'accès de la socket.

_/proc/partitions_
:   Contient les numéros majeur et mineur de chaque partition, ainsi que le nombre de blocs et le nom de la partition.

_/proc/pci_
:   Il s'agit d'une liste de tous les périphériques PCI détectés pendant l'initialisation ainsi que leur configuration.

_/proc/scsi_
:   Un répertoire regroupant les pseudo-fichiers du niveau SCSI intermédiaire, et divers sous-répertoires pour les pilotes SCSI bas-niveau, qui contiennent un fichier pour chaque hôte SCSI du système. Tout cet ensemble fournit une partie de l'état du sous-système d'entrée/sortie SCSI. Les fichiers contiennent des structures sous forme ASCII, et sont donc lisibles avec cat.

On peut également écrire dans certains fichiers pour reconfigurer le sous-système SCSI, ou activer/désactiver certaines fonctionnalités.

_/proc/scsi/scsi_
:   Il s'agit d'une liste de tous les périphériques SCSI reconnus par le noyau. Cette liste est la même que celle affichée durant le démarrage. Le sous-système SCSI n'accepte pour le moment que la commande _add-single-device_ qui permet au super-utilisateur d'ajouter un périphérique branché à chaud à la liste des périphériques connus.

Un **echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi** fera examiner le canal SCSI 0 par l'hôte scsi1, à la recherche d'un périphérique identifié ID 5 LUN 0. S'il y a déjà un périphérique à cette adresse ou si l'adresse est inconnue, une erreur sera renvoyée.

_/proc/scsi/[nom_de_driver]_
:   Le _[nom_de_driver]_ peut être actuellement : NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx, buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug, seagate, t128, u15-24f, ultrastore ou wd7000. Ces répertoires correspondent à chaque driver qui pilote au moins un HBA SCSI. Chaque répertoire contient un fichier par hôte enregistré. Chaque fichier hôte est baptisé avec le numéro assigné à l'hôte durant l'initialisation.

La lecture de ces fichiers montrera en général la configuration de l'hôte et du pilote, des statistiques, etc.

L'écriture dans ces fichiers permettra différentes choses suivant les hôtes. Par exemple, avec les commandes _latency_ et _nolatency_, le super-utilisateur peut activer ou inhiber le code de mesure de latence des commandes dans le pilote eata_dma. Avec les commandes _lockup_ et _unlock_, il peut contrôler les verrouillages de bus simulés par le pilote scsi_debug.

_/proc/self_
:   Ce répertoire se rapporte au processus accédant au système de fichier /proc, et est identique au sous-répertoire de /proc ayant pour nom le PID du processus appelant.

_/proc/slabinfo_
:   Informations à propos des mémoires caches du noyau. Les colonnes sont :</p>

    ```nom-du-cache
nombre-d'objets-actifs
nombre-total-d'objets
taille-d-'objet
nombre-de-tampons-actifs
nombre-total-de-tampons
nombre-de-pages-par-tampon```

_/proc/stat_
:   Statistiques du noyau, et du système. Varie avec l'architecture, les entrées communes sont :

_cpu 3357 0 4313 1362393_
:   Le nombre de jiffies (centièmes de seconde) que le système a passé en mode utilisateur, en mode utilisateur avec une priorité basse (gentil), en mode système, et le temps d'inactivité. La dernière valeur devrait correspondre à 100 fois la deuxième entrée du pseudo-fichier uptime.

_page 5741 1808_
:   Le nombre de pages que le système a paginé en entrée et en sortie.

_swap 1 0_
:   Le nombre de pages de swap que le système a échangé en entrée et en sortie.

_intr 1462898_
:   Le nombre d'interruption reçues depuis le démarrage du système.

_disk_io: (2,0):(31,30,5764,1,2) (3,0):_...
:   (majeur,mineur):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written)

_ctxt 115315_
:   Le nombre de changements de contexte effectués par le système.

_btime 769041601_
:   La date de démarrage du système en secondes écoulées depuis le 1er Janvier 1970.

_processes 23664_
:   Le nombre de processus exécutés sur le système depuis le démarrage.

_/proc/swap_
:   Les zones de swap utilisées. Voir aussi swapon.

_/proc/sys_
:   Ce répertoire (présent depuis le noyau 1.3.57) contient un ensemble de fichiers et de sous-répertoires correspondant à des variables internes du noyau. Celles-ci peuvent être lues et parfois modifiées en utilisant le pseudo-système de fichiers _proc_, et en utilisant l'appel-système sysctl. Actuellement, il existe les sous-répertoires _abi_, _debug_, _dev_, _fs_, _kernel_, _net_, _proc_, _sunrpc_ et _vm_ qui contiennent chacun des fichiers et d'autres sous-répertoires.

_/proc/sys/abi_
:   Ce répertoire peut être vide. Sur certains systèmes, il est même absent.

_/proc/sys/debug_
:   Ce répertoire peut être vide.

_/proc/sys/dev_
:   Ce répertoire contient des informations spécifiques sur les périphériques (par ex. dev/cdrom/info). Sur certains systèmes, il peut être vide.

_/proc/sys/fs_
:   Ici se trouve le sous-répertoire _binfmt_misc_ et les fichiers _dentry-state_, _dir-notify-enable_, _dquot-nr_, _file-max_, _file-nr_, _inode-max_, _inode-nr_, _inode-state_, _lease-break-time_, _leases-enable_, _overflowgid_, _overflowuid_ _super-max_ et _super-nr_ dont les noms sont assez explicites.

_/proc/sys/fd/binfmt_misc_
:   La documentation des fichiers de ce répertoire se trouve dans les sources du noyau, dans _Documentation/binfmt_misc.txt_.

_/proc/sys/fs/dentry-state_
:   Ce fichier contient six nombres _nr_dentry_, _nr_unused_, _age_limit_ (age en secondes), _want_pages_ (pages réclamées par le système) et deux valeurs inutiles. nr_dentry semble être toujours à zéro. nr_unused semble être le nombre d'entrées de répertoire libres. age_limit est l'âge en seconde après lequel les entrées dcache peuvent être réclamées quand la mémoire libre diminue et que want_page est non-nul.

_/proc/sys/fs/dir-notify-enable_
:   ce fichier peut être utilisé pour activer ou inhiber l'interface _dnotify_ décrite dans fcntl au niveau système Une valeur nulle inhibe cette interface, et la valeur 1 l'active.

_/proc/sys/fs/dquot-max_
:   Ce fichier montre le nombre maximal d'entrée de quota de disque en cache. Sur certains systèmes (2.4), il est absent. Si le nombre de quotas de disque libres est très bas, et si vous avez un nombre important d'utilisateurs simultanés, vous pouvez augmenter cette valeur.

_/proc/sys/fs/dquot-nr_
:   Ce fichier montre le nombre d'entrées de quota de disque allouées et le nombre d'entrées libres.

_/proc/sys/fs/file-max_
:   Ce fichier est la limite système du nombre de fichiers ouverts par un processus. Si vous avez beaucoup de messages d'erreurs indiquant un manque de descripteurs de fichiers, essayez d'augmenter cette valeur.

echo 100000 > /proc/sys/fs/file-max```

La constante _NROPEN du noyau impose une limite supérieure à la valeur que l’on peut placer dans file-max.

Si vous augmentez /proc/sys/fs/file-max, assurez-vous d’augmenter /proc/sys/fs/inode-max jusqu’à 3 à 4 fois la nouvelle valeur de /proc/sys/fs/file-max, ou vous serez à court d’i-noeuds.

/proc/sys/fs/file-nr
Ce fichier (en lecture seule) donne le nombre de fichiers actuellement ouverts. Il contient trois nombres : les descripteurs de fichiers allouées, les descripteurs de fichiers libres, et le maximum de descripteurs de fichiers. Le noyau alloue les descripteurs dynamiquement, mais il ne les libère pas. Si le nombre de descripteurs alloués est proche du maximum, vous pouvez envisager d’augmenter le maximum. Quand le nombre de descripteurs libres est très grand, vous avez rencontré dans le passé un pic d’utilisation et n’avez probablement pas besoin d’augmenter le maximum.
/proc/sys/fs/inode-max
Ce fichier contient le nombre maximal d’i-noeuds en mémoire. Sur certains systèmes (2.4) il peut être absent. Cette valeur devrait être 3 à 4 fois plus grande que le nombre file-max, car les descripteurs stdin, stdout, et les socket réseau nécessitent aussi un i-noeud. Lorsque vous manquez régulièrement d’i-noeud, augmentez cette valeur.
/proc/sys/fs/inode-nr
Ce fichier contient les deux premières valeurs de inode-state.
/proc/sys/fs/inode-state
Ce fichier contient sept nombres : nr_inodes, nr_free_inodes, preshrink et quatre valeurs inutiles. nr_inodes est le nombre d’i-noeuds alloués par le système. Il peut être légèrement plus grand que inode-max, car Linux les alloue par page complète. nr_free_inodes représente le nombre d’i-noeuds libres. preshrink est non-nulle quand nr_inodes > inode-max et que le système doit purger la liste d’i-noeuds plutôt qu’en allouer plus.
/proc/sys/fs/lease-break-time
Ce fichier indique le délai de grâce que le noyau accorde à un processus détenant un blocage de fichier après qu’il lui a envoyé un signal indiquant qu’un autre processus attend pour ouvrir le fichier. Si, durant le délai de grâce, le détenteur du blocage ne le supprime pas, en n’en diminue pas la portée, le noyau éliminera de force le blocage.
/proc/sys/fs/leases-enable
Ce fichier permet d’activer ou d’inhiber les blocages de fichiers pour tout le système. Si ce fichier contient la valeur 0, les blocages sont désactivés, une valeur non-nulle les active.
/proc/sys/fs/overflowgid et /proc/sys/fs/overflowuid
Ces fichiers contiennent des valeurs de GID et UID de débordement, par défaut 65534. Certains systèmes de fichiers ne supportent que des UID et GID sur 16 bits, bien que le noyau Linux les gère sur 32 bits. Lorsque l’un de ces systèmes de fichiers est monté en lecture-écriture, tout UID ou GID dépassant 65535 est remplacé par la valeur de débordement avant l’écriture sur le disque.
/proc/sys/fs/super-max
Ce fichier indique le nombre maximal de superblocs, et donc le nombre maximal de systèmes de fichiers que le noyau peut monter. Vous n’avez besoin d’augmenter cette valeur que si vous désirez monter plus de systèmes de fichiers que le maximal actuel.
/proc/sys/fs/super-nr
contient le nombre de systèmes de fichiers montés actuellement.
/proc/sys/kernel
On y trouve les fichiers acct, _cadpid, cap-bound, _corepattern, _core_usespid, ctrl-alt-del, dentry-state, domainname, hotplug, hostname, htab-reclaim (PowerPC), java-appletviewer (binfmt_java, obsolète), java-interpreter (binfmt_java, obsolète), l2cr (PowerPC), modprobe, msgmax, msgmnb, msgmni, osrelease, ostype, overflowgid, overflowuid, panic, _panic_onoops, _pidmax, powersave-nap (PowerPC seulement), printk, pty, random, real-root-dev, reboot-cmd (SPARC seulement), rtsig-max, rtsig-nr, sem, sg-big-buff, shmall, shmmax, shmmni, sysrq, tainted, threads-max, version et zero-paged (PowerPC seulement) dont les noms sont assez explicites.
/proc/sys/kernel/acct
Ce fichier contient trois nombres : un seuil haut, un seuil bas et une période. Si la comptabilité des processus à la manière BSD est activée, ses valeurs déterminent son comportement. Si l’espace disque sur le système de fichiers accueillant les statistiques descend sous le seuil bas, (en pourcentage), la comptabilité est suspendue. Si l’espace remonte au-dessus du seuil haut, elle reprend. La période (en seconde) est celle avec laquelle le noyau vérifie l’espace disque disponible. Les valeurs par défaut sont 4, 2 et 30. Cela signifie que la comptabilité est suspendue en-dessous de 2% d’espace libre, elle reprend à 4% et la vérification a lieu toutes les 30 secondes.
/proc/sys/kernel/cap-bound
Ce fichier conserve la valeur de l’ensemble des capacités limites du noyau (exprimée comme un nombre décimal signé). Cet ensemble est filtré par un ET binaire avec les capacité du processus lors d’un exec.
_/proc/sys/kernel/corepattern
Ce fichier (nouveauté Linux 2.5) fournit un contrôle sur le nom employé pour les fichiers core, plus fin que le fichier _/proc/sys/kernel/core_usespid obsolète décrit plus bas. Le nom d’un fichier core est contrôlé par un motif défini dans _/proc/sys/kernel/corepattern. Le motif peut contenir des inficateurs % qui sont remplacés par les valeurs suivantes lors de la création d’un fichier core :

%% Un caractère % %p Le PID du processus %u L’UID réel du processus %g Le GID réel du processus %s Le numéro du signal provoquant le core %t L’heure (secs depuis 01/01/1970, 00:00) %h Le nom d’hôte (” nodename “ de uname) %e Nom du fichier exécutable

Un % seul à la fin du motif est éliminé du nom du fichier, comme un % suivi d’un autre caractère que ceux de la liste ci-dessus. Tous les autres caractères dans le motif gardent leur valeur littérale dans le nom du fichier core. La taille maximal du nom est de 64 octets. La valeur par défaut de ce fichier est “ core “. Pour assurer une compatibilité ascendante, si _/proc/sys/kernel/corepattern ne contient pas “ %p ” et si _/proc/sys/kernel/core_usespid est non-nul, alors .PID est ajouté au nom de fichier core.

_/proc/sys/kernel/core_usespid
Ce fichier permet de configurer le nom des fichiers core sous Linux 2.4. Si ce fichier contient la valeur zéro, l’image mémoire écrite sur le disque est simplement nommée core. S’il contient une valeur non-nulle, le fichier core contient également le numéro du PID du processus, avec la forme core.PID.
/proc/sys/kernel/ctrl-alt-del
Ce fichier contrôle la gestion de la séquence Ctrl-Alt-Suppr du clavier. S’il contient la valeur zéro, Ctrl-alt-del est capturé et envoyé au programme init pour relancer le système correctement. Si la valeur est supérieure à zéro, la réaction de Linux à ce Coup-de-pied Au C.. est un redémarrage immédiat, sans même écrire le contenu des tampons en attente. Note : lorsqu’un programme (comme dosemu) utilise le clavier en mode “ raw ” (brut), la séquence Ctrl-Alt-Suppr est interceptée par le programme avant même d’atteindre le gestionnaire de console du noyau, et c’est à ce programme de décider qu’en faire.
/proc/sys/kernel/hotplug
Ce fichier contient le chemin de l’agent du mécanisme de branchement à chaud. La valeur par défaut est “ /sbin/hotplug “.
/proc/sys/kernel/domainname et /proc/sys/kernel/hostname
Ces fichiers servent à indiquer les noms NIS/YP de domaine et d’hôte, exactement de la même manière que les commandes domainname et hostname. Par exemple :

# echo “ darkstar ” > /proc/sys/kernel/hostname

# echo “ mydomain ” > /proc/sys/kernel/domainname

a exactement le même effet que

# hostname “ darkstar ”

# domainname “ mydomain ”

Notez toutefois, que le classique darkstar.frop.org a le nom d’hôte darkstar et le nom de domaine DNS (Internet Domain Name Server) “ frop.org ”, à ne pas confondre avec le nom de domaine NIS (Network Information Service) ou YP (Yellow Pages). Ces noms de domaines sont généralement différents. Pour plus de détail, voyez la page hostname.

/proc/sys/kernel/htab-reclaim
(PowerPC seulement) Si ce fichier contient une valeur non-nulle, la htab du PowerPC (voir le fichier Documentation/powerpc/ppc_htab.txt du noyau) est parcourue chaque fois que le système atteint la boucle d’inactivité.
/proc/sys/kernel/l2cr
(PowerPC seulement) Ce fichier contient un indicateur commandant le cache L2 des cartes processeurs G3. Le cache est désactivé si la valeur est nulle, activé sinon.
/proc/sys/kernel/modprobe
Ce fichier est décrit dans le fichier des sources du noyau Documentation/kmod.txt.
/proc/sys/kernel/msgmax
Ce fichier est une limite pour l’ensemble du système précisant le nombre maximal d’octets par message écrit dans une file de message Système V.
/proc/sys/kernel/msgmni
Ce fichier définit la limite pour le système du nombre d’identificateurs de files de messages. (Ce fichier n’existe que depuis Linux 2.4).
/proc/sys/kernel/msgmnb
Ce fichier est un paramètre au niveau du système pour initialiser la valeur _msgqbytes lors de la création ultérieure de files de messages. La valeur _msgqbytes indique le nombre maximal d’octets que peut contenir une file de messages.
/proc/sys/kernel/ostype et /proc/sys/kernel/osrelease
Ces fichiers donnent des sous-chaînes de /proc/version.
/proc/sys/kernel/overflowgid et /proc/sys/kernel/overflowuid
Ces fichiers remplissent le même rôle que /proc/sys/fs/overflowgid et /proc/sys/fs/overflowuid.
/proc/sys/kernel/panic
Ce fichier donne un accès en lecture et écriture à la variable _panictimeout du noyau. Si elle vaut zéro, le noyau se mettra en boucle en cas de panique, sinon elle contient le nombre de secondes après lequel le noyau devra redémarrer. Si vous utilisez le pilote de surveillance watchdog logiciel, la valeur recommandée est 60.
_/proc/sys/kernel/panic_onoops
Ce fichier (nouveauté Linux 2.5) contrôle le comportement du noyau lorsqu’un Oops (défaut) ou un bogue est rencontré. Si ce fichier contient 0, alors le système tente de continuer à travailler. S’il contient 1, alors le système attend quelques secondes (pour laisser à klogd le temps d’enregistrer la sortie du Oops) puis déclenche une panique. Si le fichier /proc/sys/kernel/panic est également non nul alors la machine redémarrera.
_/proc/sys/kernel/pidmax
Ce fichier (nouveauté Linux 2.5) indique la valeur à partir de laquelle les PIDs vont reprendre au début. (la valeur dans ce fichier est celle du PID maximum plus un). La valeur par défaut est 32768, ce qui correspond à la même plage de PIDs que sur les noyaux antérieurs. La valeur peut être augmentée jusqu’à 2^22 (PID_MAX_LIMIT, approximativement 4 millions).
/proc/sys/kernel/powersave-nap (PowerPC seulement)
Ce fichier contient un indicateur. S’il est non-nul, Linux-PPC utilisera le mode “ nap ” d’économie d’énergie, sinon il utilisera le mode “ doze “.
/proc/sys/kernel/printk
Les quatre valeurs dans ce fichier sont nommées console_loglevel, default_message_loglevel, minimum_console_level et default_console_loglevel. Ces valeurs influencent le comportement de printk() lors de l’affichage ou de la journalisation de message d’erreurs. Les messages avec une priorité plus élevée que console_loglevel seront affichés sur la console. Les messages sans priorité explicite utiliseront la priorité default_message_level. minimum_console_loglevel est la valeur maximale à laquelle console_loglevel puisse être élevédefault_console_loglevel est la valeur par défaut pour console_loglevel.
/proc/sys/kernel/pty (depuis Linux 2.6.4)
Ce répertoire contient deux fichiers relatifs au nombre de pseudo-terminaux Unix 98.
/proc/sys/kernel/pty/max
Ce fichier définit le nombre maximal de pseudo-terminaux.
/proc/sys/kernel/pty/nr

Ce fichier, en lecture seule, indique le nombre de pseudo-terminaux en cours d’utilisation.

/proc/sys/kernel/random contient divers paramètres contrôlant le fonctionnement du fichier /dev/random.

/proc/sys/kernel/real-root-dev

Ce fichier est documenté dans le fichier Documentation/initrd.txt des sources du noyau.

/proc/sys/kernel/reboot-cmd (Sparc seulement)

permet apparemment de fournir un argument au chargeur de boot ROM/Flash Sparc. Peut-être indique-t-il que faire après redémarrage ?

/proc/sys/kernel/rtsig-max

Ce fichier permet d’indiquer le nombre maximal de signaux POSIX temps-réel en attente sur le système.

/proc/sys/kernel/rtsig-nr

Ce fichier donne le nombre de signaux POSIX temps-réel actuellement en attente.

/proc/sys/kernel/sem (disponible depuis Linux 2.4)

contient 4 limites pour les sémaphores Système V. Ces valeurs sont respectivement :

SEMMSL

Le nombre maximal de sémaphores par ensemble.

SEMMNS

Une limite générale au système pour le nombre de sémaphores dans tous les ensembles.

SEMOPM

Le nombre maximal d’opérations que l’on peut indiquer dans un appel semop.

SEMNI

Une limite générale sur le nombre maximal d’identifiants de sémaphores.

/proc/sys/kernel/sg-big-buff

Ce fichier montre la taille du tampon pour le pilote SCSI générique (sg). Vous ne pourrez pas y écrire pour le moment, mais vous pouvez changer sa valeur à la compilation en éditant include/scsi/sg.h et en modifiant SG_BIG_BUFF. Toutefois, il ne devrait y avoir aucune raison de le modifier.

/proc/sys/kernel/shmall

Ce fichier contient le nombre maximal de pages de mémoire partagées (IPC Système V) au niveau du système.

/proc/sys/kernel/shmmax

Ce fichier permet de lire ou modifier la taille maximale des segments de mémoire partagée (IPC Système V) que l’on peut créer. Les segments de mémoire jusqu’à 1Go sont à présent autorisés par le noyau. La valeur par défaut est SHMMAX.

/proc/sys/kernel/shmmni

(disponible depuis Linux 2.4) Ce fichier indique le nombre maximal de segments de mémoire partagée que l’on peut créer.

/proc/sys/kernel/version

Ce fichier contient une chaîne du type :

#5 Wed Feb 25 21:49:24 MET 1998.TP

Le champ “ #5 ” indique que c’est la cinquième compilation du noyau depuis ces sources, et la date correspond à celle de la compilation.

/proc/sys/kernel/zero-paged (PowerPC seulement)
Ce fichier contient un drapeau. S’il est activé (non-nul), Linux-PPC effacera les pages dans sa boucle d’inactivité, accélérant éventuellement get_free_pages.
/proc/sys/net
Ce répertoire contient des informations concernant le réseau.
/proc/sys/proc
Ce répertoire peut être vide.
/proc/sys/sunrpc
Ce répertoire correspond aux appels de procédures à distance (RPC) sur un système de fichiers NFS. Sur certains systèmes, il est absent.
/proc/sys/vm
Ce répertoire contient des fichiers de paramétrage de la gestion de mémoire, des tampons, et du cache.
/proc/sysvipc
Sous-répertoire contenant les pseudo-fichiers msg, sem and shm. Ces fichiers listent les objets d’IPC Système V (respectivement les files de messages, les sémaphores, et la mémoire partagée) existant sur le système. Les informations sont les mêmes que celles fournies par la commande ipcs. Ces fichiers ont un en-tête, et sont formatés pour être lus facilement.
/proc/tty
Sous-répertoire contenant les pseudo-fichiers et sous-répertoires pour les pilotes de tty et la gestion de la ligne.
/proc/uptime
Ce fichier contient deux valeurs : la durée de fonctionnement (uptime) en secondes, et le temps écoulé à ne rien faire (idle), en secondes également.
/proc/version
Cette chaîne identifie la version du noyau en cours d’exécution. Elle inclue le contenu de /proc/sys/ostype, /proc/sys/osrelease et /proc/sys/version. Par exemple :

Linux version 2.4.19 ([email protected]) (gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110)) #13 sam nov 9 09:04:36 CET 2002 # NOTES Remarquez que certaines chaînes (de l’environnement et de la ligne de commande) sont parfois affichées dans un format interne, terminées par un caractère nul. Il est parfois plus lisible d’utiliser od -c ou tr “ \000 ” “ \n ” pour les lire. Autrement echo `cat ` marche bien. Cette page de manuel est incomplète, incertaine, et devrait être mise à jour très souvent. # REMERCIEMENTS La documentation de /proc/sys/fs et /proc/sys/kernel est largement construite à partir des fichiers de documentation du noyau écrits par Rik van Riel. # TRADUCTION Christophe Blaess, 2000-2003. Alain Portal, 2005


comments powered by Disqus