NOM
proc - Pseudo-système de fichiers d’informations sur les processus.
Le système de fichiers 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 de /proc.
/proc/[pid]
Il existe un sous-répertoire pour chaque processus actif. 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/[pid]/auxv (depuis le noyau 2.6.0-test7)
Il comporte le contenu des informations passées par
l’interpréteur ELF au processus lors de son exécution. Le format
est constitué, pour chacune des entrées, d’un identifiant
unsigned long suivi d’une valeur unsigned long. La dernière
entrée comporte deux zéros.
/proc/[pid]/cmdline
Ce fichier contient la ligne de commande complète du processus,
sauf s’il s’agit d’un zombie. Dans ce dernier cas, il n’y a rien
dans ce fichier : c’est-à-dire qu’une lecture de ce fichier ne
retournera aucun caractère. Les paramètres de la ligne de
commande apparaissent dans ce fichier comme un ensemble de
chaînes séparées par le caractère « NULL » (0 binaire), avec un
octet nul (« \0 ») supplémentaire après la dernière chaîne.
/proc/[pid]/coredump_filter (depuis le noyau 2.6.23)
Consultez core(5).
/proc/[pid]/cpuset (depuis le noyau 2.6.12)
Consultez cpuset(7).
/proc/[pid]/cwd
Lien symbolique vers le répertoire de travail actuel du
processus. Pour obtenir le répertoire de travail du processus 20
par exemple, vous pouvez faire ceci :
$ cd /proc/20/cwd; /bin/pwd
Notez que la commande directe pwd est souvent une commande
interne de l’interpréteur de commandes, et qu’elle risque de ne
pas fonctionner correctement. Avec bash(1), vous pouvez utiliser
pwd -P.
Dans un traitement multiprocessus (multithreaded), le contenu de
ce lien symbolique n’est pas disponible si le processus
principal est déjà terminé (typiquement par un appel à
pthread_exit(3).
/proc/[pid]/environ
Ce fichier contient l’environnement du processus. Les entrées
sont séparées par des caractères nuls (« \0 »), et il devrait y
en avoir un à la fin du fichier. Ainsi, pour afficher
l’environnement du processus numéro 1, vous pouvez utiliser :
$ (cat /proc/1/environ; echo) | tr '\000' '\n'
/proc/[pid]/exe
Sous Linux 2.2 et ultérieur, ce fichier est un lien symbolique
représentant le chemin réel de la commande en cours d’exécution.
Ce lien symbolique peut être déréférencé normalement ; tenter de
l’ouvrir ouvrira le fichier exécutable. Vous pouvez même entrer
/proc/[pid]/exe pour lancer une autre instance du même processus
[pid] indiqué. Pour les multiprocessus, le contenu de ce lien
symbolique n’est pas disponible si le processus principal s’est
déjà terminé (typiquement par l’appel de pthread_exit(3)).
Sous Linux 2.0 et précédents, /proc/[pid]/exe était un pointeur
sur le fichier binaire exécuté, qui apparaissait sous forme de
lien symbolique. Un appel système readlink(2) sur ce fichier
renvoyait une chaîne de la forme :
[périphérique]:inode
Par exemple, [0301]:1502 correspond à l’inode 1502 du
périphérique ayant le numéro majeur 03 (disque IDE, MFM, etc.)
et mineur 01 (première partition du premier disque).
On peut utiliser find(1) avec l’option -inum pour retrouver le
fichier exécutable à partir du numéro d’inode.
/proc/[pid]/fd
Il s’agit d’un sous-répertoire contenant une entrée pour chaque
fichier ouvert par le processus. Chaque entrée a le descripteur
du fichier pour nom, et est représentée par un lien symbolique
vers le vrai fichier. Ainsi, 0 correspond à l’entrée standard, 1
à la sortie standard, 2 à la sortie d’erreur, etc.
Dans un traitement multiprocessus (multithreaded), le contenu de
ce répertoire n’est pas disponible si le processus principal est
déjà terminé (typiquement par l’appel de pthread_exit(3).
Les programmes qui prennent un nom de fichier comme paramètre de
la ligne de commande mais qui ne lisent pas l’entrée standard si
aucun paramètre n’est fourni, ou qui écrivent dans un fichier
indiqué par un paramètre de la ligne de commande sans écrire sur
la sortie standard si aucun paramètre n’est fourni, peuvent
néanmoins utiliser l’entrée standard et la sortie standard par
l’intermédiaire de /proc/[pid]/fd. Par exemple, en supposant que
l’option -i indique le nom du fichier d’entrée et l’option -o le
nom du fichier de sortie :
$ tototiti -i /proc/self/fd/0 -o /proc/self/fd/1 ...
et vous avez alors réalisé un filtre.
/proc/self/fd/N est approximativement identique à /dev/fd/N sur
certains systèmes Unix et pseudo-Unix. D’ailleurs la plupart des
scripts MAKEDEV de Linux lient symboliquement en fait /dev/fd à
/proc/self/fd.
La plupart des systèmes fournissent les liens symboliques
/dev/stdin, /dev/stdout et /dev/stderr, qui sont respectivement
liés aux fichiers 0, 1 et 2 de /proc/self/fd. Par conséquent,
l’exemple précédent peut être écrit de la façon suivante :
$ foobar -i /dev/stdin -o /dev/stdout ...
/proc/[pid]/fdinfo/ (depuis le noyau 2.6.22)
Il s’agit d’un sous-répertoire contenant une entrée pour chaque
fichier ouvert par le processus, nommé par son descripteur de
fichier. Le contenu de chaque fichier peut être lu afin
d’obtenir des informations sur le descripteur de fichier
correspondant, par exemple :
$ cat /proc/12015/fdinfo/4
pos: 1000
flags: 01002002
Le champ pos est un nombre décimal indiquant la position de la
tête de lecture. Le champ flags est un nombre octal indiquant
les modes d’accès au fichier ainsi que ses attributs d’état
(voir open(2)).
Les fichiers de ce répertoire ne sont accessibles en lecture que
par le propriétaire du processus.
/proc/[pid]/limits (depuis le noyau 2.6.24)
Ce fichier indique les limites souples et strictes ainsi que les
unités de mesure de chaque limite de ressources du processus
(voir getrlimit(2)). Le fichier est protégé de telle sorte que
seul l’UID réel du processus puisse le lire.
/proc/[pid]/maps
Fichier contenant les régions de la mémoire actuellement
projetées et leurs autorisations d’accès.
Le format est :
address perms offset dev inode pathname
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 lors de l’écriture)
Le « décalage » est le décalage dans le fichier ou autre,
« périph » correspond à la paire (majeur:mineur), et l’« inode »
est l’inode sur ce périphérique. 0 signifie qu’aucun inode n’est
associé avec cette zone mémoire, comme c’est le cas avec BSS
(données non initialisées).
Sous Linux 2.0, il n’y a pas de champ indiquant le chemin
d’accès.
/proc/[pid]/mem
Ce fichier peut être utilisé pour accéder à la mémoire d’un
processus au travers de open(2), read(2), et lseek(2).
/proc/[pid]/mountinfo (depuis Linux 2.6.26)
Ce fichier contient des informations relatives aux points de
montage. Il contient des lignes de la forme :
36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
(1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11)
Les nombres entre paranthèses sont des étiquettes pour les
descriptions suivantes :
(1) mount ID : identifiant unique du montage (peut être
réutilisé après un umount(2)).
(2) parent ID : identifiant du montage parent (ou de lui-même
pour le sommet de la hiérarchie).
(3) major:minor : valeur de st_dev pour les fichiers sur le
système de fichiers (voir stat(2)).
(4) root : racine du montage dans le système de fichiers.
(5) mount point : point de montage relatif à la racine du
processus.
(6) mount options : options par montage.
(7) optional fields : zéro ou plusieurs champs de la forme
« tag[:value] ».
(8) separator : indique la fin des champs optionnels.
(9) file system type : nom du système de fichiers de la forme
« type[.subtype] ».
(10) mount source : informations spécifiques au système de
fichiers ou « none ».
(11) super options : options par super bloc.
Les outils d’analyse devraient ignorer les champs optionnels non
reconnus. Les champs optionnels actuellement disponibles sont :
shared:X le montage est partagé par le groupe pair
X
master:X le montage est esclave pour le groupe
pair X
propagate_from:X le montage est esclave et reçoit des
propagations provenant du groupe pair X
(*)
unbindable le point de montage ne peut pas être lié
(*) X est le group pair dominant le plus proche sous la racine
du processus. Si X est le maître immédiat du montage ou s’il n’y
a pas de group pair dominant sous la même racine, alors seul le
champ « master:X » est présent et pas le champ
« propagate_from:X ».
Pour plus d’informations sur les propagations de montage, voir
Documentation/filesystems/sharedsubtree.txt dans l’arborescence
des sources du noyau.
/proc/[pid]/mounts (depuis Linux 2.6.17)
C’est une liste de tous les systèmes de fichiers montés dans
l’espace de noms de montage du processus. Le format de ce
fichier est documenté dans fstab(5). Depuis la version 2.6.15 du
noyau, ce fichier peut être pollué : après avoir ouvert le
fichier en lecture, une modification de ce fichier (par exemple,
le montage ou le démontage d’un système de fichiers) provoque le
marquage par select(2) du descripteur de fichier comme étant
lisible, et poll(2) et epoll_wait(2) marquent le fichier comme
étant en erreur.
/proc/[pid]/mountstats (depuis Linux 2.6.17)
Ce fichier exporte des informations (statistiques,
configuration) relatives aux points de montage dans l’espace de
noms du processus. Les lignes de ce fichier sont de la forme :
device /dev/sda7 mounted on /home with fstype ext3 [statistics]
( 1 ) ( 2 ) (3 ) (4)
Les champs de chaque ligne sont :
(1) Le nom du périphérique monté (ou « nodevice » s’il n’y a
pas de périphérique correspondant).
(2) Le point de montage dans l’arborescence du système de
fichiers.
(3) Le type du système de fichiers.
(4) Statistiques optionnelles et informations de configuration.
Actuellement (Linux 2.6.26), seuls les systèmes de fichiers
NFS exportent des informations à travers ce champ.
Ce fichier n’est accessible en lecture que par le propriétaire
du processus.
/proc/[pid]/numa_maps (depuis Linux 2.6.14)
Consultez numa(7).
/proc/[pid]/oom_adj (depuis Linux 2.6.11)
Ce fichier est utilisé pour ajuster la notation utilisée pour
sélectionner le processus qui sera tué dans une situation de
mémoire saturée. Le noyau utilise cette valeur pour une
opération de décalage sur la valeur oom_score du processus : les
valeurs valables sont dans l’intervalle de -16 à +15 plus la
valeur spéciale -17, qui désactive complètement la mise à mort
sur mémoire saturée du processus. Une notation négative diminue
la probabilité. La valeur par défaut de ce fichier est 0 ; un
nouveau processus hérite de la valeur oom_adj de son père. Un
processus doit être privilégié (CAP_SYS_RESOURCE) pour mettre à
jour ce fichier.
/proc/[pid]/oom_score (depuis Linux 2.6.11)
Ce fichier indique la notation actuelle donnée par le noyau pour
sélectionner un processus pour une mise à mort sur mémoire
saturée. Une notation élevée signifie que le processus a plus de
chance d’être sélectionné pour une mise à mort sur mémoire
saturée. La base de cette notation est la quantité de mémoire
utilisée par le processus. Cette notation peut augmenter (+) ou
diminuer (-) en fonction des facteurs suivants :
* le processus crée beaucoup d’enfants avec fork(2) (+) ;
* le processus s’exécute depuis longtemps ou a consommé beaucoup
de temps processeur (-) ;
* le processeur a une faible valeur de courtoisie (c’est-à-dire
positive) (+) ;
* le processus est privilégié (-) ; et
* le processus effectue des accès matériels directs (-).
oom_score reflète également l’ajustement de décalage de bit du
processus indiqué dans oom_adj.
/proc/[pid]/root
Unix et Linux gèrent une notion de racine du système de fichiers
par processus, configurée avec l’appel système chroot(2). Ce
fichier est un lien symbolique qui pointe vers le répertoire
racine du processus, et se comporte comme le font exe, fd/*,
etc.
Dans un traitement multiprocessus (multithreaded), le contenu de
ce lien symbolique n’est pas disponible si le processus
principal est déjà terminé (typiquement par un appel à
pthread_exit(3).
/proc/[pid]/smaps (depuis Linux 2.6.14)
Ce fichier affiche la mémoire utilisée par les cartes de chacun
des processus. Pour chacune des cartes, il y a une série de
lignes comme les suivantes :
08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash
Size: 464 kB
Rss: 424 kB
Shared_Clean: 424 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
La première de ces lignes montre les mêmes informations que
celles qui sont affichées pour la cartographie mémoire dans
/proc/[pid]/maps. Les lignes qui suivent montrent la taille des
cartes, la taille mémoire actuellement résidente en mémoire
vive, le nombre de pages partagées de la carte « propres » ou
« sales », et le nombre de cartes privées propres ou sales.
Ce fichier n’est présent que si l’option de configuration du
noyau CONFIG_MMU a été validée.
/proc/[pid]/stat
Informations sur l’état du processus. Ceci est utilisé par
ps(1). La définition se trouve dans
/usr/src/linux/fs/proc/array.c.
Les champs sont, dans l’ordre, et avec leur propre spécificateur
de format de type scanf(3) :
pid %d Identifiant du processus.
comm %s Nom du fichier exécutable entre parenthèses. Il est
visible que l’exécutable ait été déchargé sur
l’espace d’échange (« swappé ») ou pas.
state %c Un caractère parmi « RSDZTW » ou R signifie que le
processus est en cours d’exécution, S endormi dans
un état non interruptible, D en attente de disque de
manière non interruptible, Z zombie, T qu’il est
suivi pour une trace ou arrêté par un signal et W
qu’il effectue une pagination vers l’espace
d’échange.
ppid %d PID du processus parent.
pgrp %d Identifiant de groupe de processus du processus.
session %d Identifiant de session du processus.
tty_nr %d Le terminal de contrôle du processus. (Le numéro
mineur de périphérique dans la combinaison des bits
31 à 20 et 7 à 0 ; le numéro majeur est dans les
bits 15 à 8.)
tpgid %d L’identifiant du groupe de processus d’arrière-plan
du terminal de contrôle du processus.
flags %u (était %lu avant Linux 2.6.22)
Mot contenant les indicateur du noyau pour le
processus. Pour en savoir plus sur la signification
des bits, voir les définitions de PF_* dans
<linux/sched.h>. Les détails dépendent de la version
du noyau.
minflt %lu Nombre de fautes mineures que le processus a
déclenchées et qui n’ont pas nécessité le chargement
d’une page mémoire depuis le disque.
cminflt %lu Nombre de fautes mineures que les enfants en attente
du processus ont déclenchées.
majflt %lu Nombre de fautes majeures que le processus a
déclenchées et qui ont nécessité un chargement de
page mémoire depuis le disque.
cmajflt %lu Nombre de fautes majeures que les enfants en attente
du processus ont déclenchées.
utime %ld Le temps passé en mode utilisateur par le processus,
mesuré en tops d’horloge (divisé par
sysconf(_SC_CLK_TCK). Cela inclut le temps d’invité,
guest_time (temps passé à exécuter un processeur
virtuel, voir plus loin), de sorte que les
applications qui ne sont pas au courant du champ
« temps d’invité » ne perdent pas ce temps dans
leurs calculs.
stime %ld Le temps passé en mode noyau par le processus,
mesuré en tops d’horloge (divisé par
sysconf(_SC_CLK_TCK).
cutime %ld Le temps passé en mode utilisateur par le processus
et ses descendants, mesuré en tops d’horloge (divisé
par sysconf(_SC_CLK_TCK). Voir aussi times(2).) Cela
inclut le temps d’invité, cguest_time (temps passé à
exécuter un processeur virtuel, voir plus loin).
cstime %ld Le temps passé en mode noyau par le processus et ses
descendants, mesuré en tops d’horloge (divisé par
sysconf(_SC_CLK_TCK).
priority %ld
(Explications pour Linux 2.6) Pour les processus
s’exécutant sous une politique d’ordonnancement
temps réel (policy plus loin ; voir
sched_setscheduler(2)), il s’agit de la valeur
négative de la politique d’ordonnancement, moins
un ; c’est-à-dire un nombre dans l’intervalle -2 à
-100, correspondant aux priorités temps réel 1 à 99.
Pour les processus s’exécutant sous une politique
d’ordonnancement qui ne soit pas temps réel, il
s’agit de la valeur brute de courtoisie
(setpriority(2)) comme représentée dans le noyau. Le
noyau enregistre les valeurs de courtoisie sous
forme de nombre de l’intervalle 0 (haute) à 39
(faible), correspondant à un intervalle de
courtoisie visible par l’utilisateur de -20 à 19.
Avant Linux 2.6, c’était une valeur d’échelle basée
sur la pondération de l’ordonnanceur fournie au
processus.
nice %ld La valeur de courtoisie (voir setpriority(2)), une
valeur dans l’intervalle 19 (faible priorité) à -19
(haute priorité).
num_threads %ld
Nombre de threads dans ce processus (depuis Linux
2.6). Avant le noyau 2.6, ce champ était codé en dur
à 0 pour remplacer un champ supprimé auparavant.
itrealvalue %lu
Nombre de jiffies avant que le signal SIGALRM
suivant soit envoyé au processus par un
temporisateur interne. Depuis le noyau 2.6.17, ce
champ n’est plus maintenu et est codé en dur à 0.
starttime %llu (était %lu avant Linux 2.6)
Instant en jiffies auquel le processus a démarré
après le démarrage du système.
vsize %lu Taille de la mémoire virtuelle en octets.
rss %lu Taille de l’ensemble résident (Resident Set Size) :
nombre de pages dont le processus dispose en mémoire
réelle. Il ne s’agit que 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é déchargées.
rsslim %lu Limite souple actuelle en octets du RSS du
processus ; voir la description de RLIMIT_RSS dans
getpriority(2).
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 (c’est-à-dire le bas) de la pile.
kstkesp %lu Valeur actuelle du pointeur de pile (ESP), telle
qu’on la trouve dans la page de pile du noyau pour
ce processus.
kstkeip %lu EIP actuel (Pointeur d’instructions).
signal %ld Masque des signaux en attente, affiché sous forme
d’un nombre décimal. Obsolète car il ne fournit pas
d’informations sur les signaux temps réel ; utilisez
plutôt /proc/[pid]/status.
blocked %ld Masque des signaux bloqués, affiché sous forme d’un
nombre décimal. Obsolète car il ne fournit pas
d’information sur les signaux temps réel ; utilisez
plutôt /proc/[pid]/status.
sigignore %ld
Masque des signaux ignorés, affiché sous forme d’un
nombre décimal. Obsolète car il ne fournit pas
d’informations sur les signaux temps réel ; utilisez
plutôt /proc/[pid]/status.
sigcatch %ld
Masque des signaux interceptés, affiché sous forme
d’un nombre décimal. Obsolète car il ne fournit pas
d’informations sur les signaux temps réel ; utilisez
plutôt /proc/[pid]/status.
wchan %lu Il s’agit du « canal » sur lequel le processus est
en attente. C’est l’adresse d’un appel système, dont
on peut retrouver le nom dans une table si besoin.
(Si vous avez le fichier /etc/psdatabase à jour, et
essayé ps -l pour voir le champs WCHAN en action).
nswap %lu Nombre de pages déplacées sur l’espace d’échange
(non maintenu).
cnswap %lu Champ nswap cumulé pour les processus enfants (non
maintenu).
exit_signal %d (depuis Linux 2.1.22)
Signal à envoyer au parent lors de la mort du
processus.
processor %d (depuis Linux 2.2.8)
Numéro du processeur utilisé lors de la dernière
exécution.
rt_priority %u (depuis Linux 2.5.19 ; était %lu avant Linux
2.6.22)
Priorité d’ordonnancement temps réel, un nombre dans
l’intervalle 1 à 99 pour les processus ordonnancés
sous une politique temps réel, ou 0 pour les
processus non temps réel (voir
sched_setscheduler(2)).
policy %u (depuis Linux 2.5.19 ; était %lu avant Linux 2.6.22)
Politique d’ordonnancement (voir
sched_setscheduler(2)). Décoder avec les constantes
SCHED_* de linux/sched.h.
delayacct_blkio_ticks %llu (depuis Linux 2.6.18)
Cumul des délais d’entrées-sorties, mesuré en tic
horloge (centièmes de secondes).
guest_time %lu (depuis Linux 2.6.24)
Temps d’invité du processus (temps passé à exécuter
un processeur virtuel pour un système d’exploitation
invité), mesuré en tops d’horloge (divisé par
sysconf(_SC_CLK_TCK).
cguest_time %ld (depuis Linux 2.6.24)
Temps d’invité des fils du processus, mesuré en tops
d’horloge (divisé par sysconf(_SC_CLK_TCK).
/proc/[pid]/statm
Donne des informations sur l’utilisation de la mémoire, mesurée
en pages. Les colonnes représentent :
size taille totale du programme
(comme pour VmSize dans /proc/[pid]/status)
resident taille résidant en mémoire
(comme pour VmRSS dans /proc/[pid]/status)
share pages partagées (des projections partagées)
text texte (code)
lib bibliothèque (non utilisé dans Linux 2.6)
data données + pile
dt pages touchées (dirty, non utilisé dans Linux 2.6)
/proc/[pid]/status
Fournit l’essentiel des informations de /proc/[pid]/stat et
/proc/[pid]/statm dans un format plus facile à lire pour les
humains. Voici un exemple :
$ cat /proc/$$/status
Name: bash
State: S (sleeping)
Tgid: 3515
Pid: 3515
PPid: 3452
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 100 100 100 100
FDSize: 256
Groups: 16 33 100
VmPeak: 9136 kB
VmSize: 7896 kB
VmLck: 0 kB
VmHWM: 7572 kB
VmRSS: 6316 kB
VmData: 5224 kB
VmStk: 88 kB
VmExe: 572 kB
VmLib: 1708 kB
VmPTE: 20 kB
Threads: 1
SigQ: 0/3067
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: 00000001
Cpus_allowed_list: 0
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 150
nonvoluntary_ctxt_switches: 545
Les champs sont les suivants :
* Name : Commande lancée par ce processus.
* State : État actuel du processus parmi les valeurs : « R
(running) », « S (sleeping) », « D (disk sleep) », « T
(stopped) », « T (tracing stop) », « Z (zombie) » ou « X
(dead) ».
* Tgid : Identifiant du groupe de threads (c’est-à-dire,
identifiant du processus PID).
* Pid : Identifiant de thread (voir gettid(2)).
* TracerPid : PID du processus traçant ce processus (0 s’il
n’est pas tracé).
* Uid, Gid : UID (et GID) réel, effectif, sauvé et de système de
fichiers.
* FDSize : Nombre d’entrées de descripteurs de fichier
actuellement alloués.
* Groups : Liste des groupes supplémentaires.
* VmPeak : Taille de pointe de mémoire virtuelle.
* VmSize : Taille de mémoire virtuelle.
* VmLck : Taille de mémoire verrouillée.
* VmHWM : Taille de pointe de mémoire résidente (« High Water
Mark »).
* VmRSS : Taille de mémoire résidente
* VmData, VmStk, VmExe : Taille des segments de données, de pile
et de texte.
* VmLib : Taille du code de bibliothèque partagée.
* VmPTE : Taille des entrées de table de page (depuis Linux
2.6.10).
* Threads : Nombre de threads dans le processus contenant ce
thread.
* SigPnd, ShdPnd : Nombre de signaux en attente du thread et du
processus dans son ensemble (voir pthreads(7) et signal(7)).
* SigBlk, SigIgn, SigCgt : Masques indiquant les signaux
bloqués, ignorés et interceptés (voir signal(7)).
* CapInh, CapPrm, CapEff : Masques des capacités actives dans
les ensembles transmissibles, permis et effectifs (voir
capabilities(7)).
* CapBnd : Ensemble de limitation de capacités (Capability
Bounding set ; depuis le noyau 2.6.26, voir capabilities(7)).
* Cpus_allowed : Masque des processeurs sur lesquels le
processus peut s’exécuter (depuis Linux 2.6.24, voir
cpuset(7)).
* Cpus_allowed_list : Pareil que précédemment, mais au format
liste (depuis Linux 2.6.26, voir cpuset(7)).
* Mems_allowed : Masque des nœuds mémoire autorisés pour ce
processus (depuis Linux 2.6.24, voir cpuset(7)).
* Mems_allowed_list : Pareil que précédemment, mais au format
liste (depuis Linux 2.6.26, voir cpuset(7)).
* voluntary_context_switches, nonvoluntary_context_switches :
Nombre de basculement de contexte, volontaire ou non (depuis
Linux 2.6.23).
/proc/[pid]/task (depuis Linux 2.6.0-test6)
C’est un répertoire qui comporte un sous-répertoire pour chacun
des processus légers (threads) de la tâche. Le nom de chacun des
sous-répertoire est l’identifiant ([tid]) du thread (voir
gettid(2). Dans chacun de ces sous-répertoire se trouvent un
ensemble de fichiers ayant le même nom et contenu que dans les
répertoires /proc/[pid]. Pour les attributs qui sont partagés
par tous les processus, le contenu de chacun des fichiers se
trouvant dans le sous-répertoire task/[tid] sera identique à
celui qui se trouve dans le répertoire parent /proc/[pid] (par
ex., pour une tâche multiprocessus, tous les fichiers
task/[tid]/cwd auront le même contenu que le fichier
/proc/[pid]/cwd dans le répertoire parent, puisque tous les
processus d’une même tâche partage le même répertoire de
travail. Pour les attributs qui sont distincts pour chacun des
processus, les fichiers correspondants sous task/[tid] peuvent
être différents (par ex., certains champs de chacun de fichiers
task/[tid]/status peuvent être différents pour chaque
processus).
Dans un traitement multiprocessus, le contenu du répertoire
/proc/[pid]/task n’est pas disponible si le processus principal
est déjà terminé (typiquement lors de l’appel pthread_exit(3).
/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(8) et setpci(8).
/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(8) ou
grub(8).
/proc/config.gz (depuis Linux 2.6)
Ce fichier indique les options de configuration qui ont été
utilisées pour construire le noyau actuel, dans le même format
que celui utilisé pour le fichier .config résultant de la
configuration du noyau (en utilisant make xconfig, make config,
ou autre). Le contenu du fichier est compressé ; parcourez le ou
effectuez vos recherches avec zcat(1), zgrep(1), etc. Tant qu’il
n’y a pas de changement dans les fichiers qui suivent, le
contenu de /proc/config.gz est identique à celui fournit par :
cat /lib/modules/$(uname -r)/build/.config
/proc/config.gz n’est fourni que si le noyau est configuré avec
l’option CONFIG_IKCONFIG_PROC.
/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/diskstats (depuis Linux 2.5.69)
Ce fichier contient les statistiques d’entrées-sorties du disque
pour chaque périphérique disque. Voir le fichier fourni avec les
sources du noyau Documentation/iostats.txt pour plus
d’information.
/proc/dma
Il s’agit d’une liste des canaux DMA (Direct Memory Acess) ISA
en cours d’utilisation.
/proc/driver
Sous-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
Liste textuelle des systèmes de fichiers qui sont pris en compte
par le noyau, c’est-à-dire les systèmes de fichiers qui ont été
compilés dans le noyau ou dont les modules du noyau sont
actuellement chargés. (Voir aussi filesystems(5)). Si un système
de fichiers est marqué par « nodev », ceci signifie qu’il n’a
pas besoin d’un périphérique de type bloc pour être monté (par
exemple un système de fichiers virtuel, un système de fichiers
réseau).
Ce fichier peut éventuellement être utilisé par mount(8)
lorsqu’aucun système de fichiers n’est indiqué et qu’il n’arrive
pas à déterminer le type du système de fichiers. Alors, les
systèmes de fichiers que comportent ce fichier sont essayés (à
l’exception de ceux qui sont marqués par « nodev »).
/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 :
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 référence fournisseur
settings configuration du pilote
smart_thresholds seuils en hexadécimal
smart_values paramètres in hexadécimal
L’utilitaire hdparm(8) fournit un accès convivial à ces
informations.
/proc/interrupts
Utilisé pour enregistrer le nombre d’interruptions par CPU et
par périphérique d’entrées-sorties. Depuis Linux 2.6.24, pour
les architectures i386 et x86_64 au moins, il comprend également
les interruptions internes au système (c’est à dire pas
directement attachées à un périphérique), comme les NMI
(« nonmaskable interrupt », interruptions non masquable), LOC
(« local timer interrupt », interruption timer local), et pour
les systèmes SMP, TLB (« TLB flush interrupt »), RES
(« rescheduling interrupt »), CAL (« remote function call
interrupt »), et peut-être d’autres. Le format est très 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/kallsyms (depuis Linux 2.5.71)
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. Dans Linux 2.5.47
et précédents, un fichier similaire avec une syntaxe légèrement
différente s’appelait ksyms.
/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(2) pour journaliser les messages du noyau. Un processus
doit avoir les privilèges superutilisateur 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(2) pour journaliser les messages du noyau.
Les informations de ce fichier sont consultées par le programme
dmesg(1).
/proc/ksyms (Linux 1.1.23-2.5.47)
Voir /proc/kallsyms.
/proc/loadavg
Les trois premiers champs de ce fichier sont des valeurs de
charge moyenne donnant le nombre de travaux dans la file
d’exécution (état R) ou en attente d’E/S disque (état D)
moyennés sur 1, 5 ou 15 minutes. Ils sont identiques aux valeurs
de charge moyenne données par uptime(1) et d’autres programmes.
Le quatrième champ consiste ne deux nombres séparés par un slash
(/). Le premier d’entre-eux est le nombre d’entités
d’ordonnancement du noyau (tâches, processus) en cous
d’exécution ; il sera inférieur ou égal au nombre de
processeurs. La valeur qui suit le slash est le nombre d’entités
d’ordonnancement du noyau qui existent actuellement sur le
système. Le cinquième champ est le PID du processus le plus
récemment créé sur le système.
/proc/locks
Ce fichier montre les verrouillages actuels des fichiers
(flock(2) et fcntl(2)) et les baux (fcntl(2)).
/proc/malloc (seulement jusqu’à Linux 2.2 inclu)
Ce fichier n’est présent que si CONFIG_DEBUG_MALLOC a été défini
lors de la compilation du noyau.
/proc/meminfo
Ce fichier fourni des statistiques sur l’utilisation mémoire du
système. Il sert au programme free(1) 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.
/proc/modules
Liste littérale des modules qui ont été chargés par le système.
Voir lsmod(8).
/proc/mounts
Avant le noyau 2.4.19, ce fichier était une liste de tous les
systèmes de fichiers actuellement monté sur le système. Avec
l’introduction des espaces de noms de montage par processus dans
Linux 2.4.19, ce fichier est devenu un lien vers
/proc/self/mounts, qui liste les points de montage de l’espace
de noms de montage du processus. Le format de ce fichier est
documenté dans fstab(5).
/proc/mtrr
Memory Type Range Registers. Voir Documentation/mtrr.txt dans
les sources du noyau pour plus d’informations.
/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(1), mais le programme standard
netstat(8) 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 :
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ù « adresse IP » est l’adresse IPv4 de la machine, le type de
matériel est issu de la RFC 826. L’attribut correspond aux
attributs 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 :
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 :
indx interface_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(8). Si
RARP n’est pas configuré dans le noyau, ce fichier est absent.
/proc/net/raw
Fournit le contenu 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 la paire de numéros associée au protocole. « St » est
l’état interne de la socket. « tx_queue » et « rx_queue »
représentent les files d’attente en émission et en réception en
ce qui concerne l’utilisation de la mémoire par le noyau. Les
champs « tr », « tm->when » et « rexmits » ne sont pas utilisés
par « RAW ». Le champ uid contient l’identifiant d’utilisateur
(UID) effectif du créateur de la socket.
/proc/net/snmp
Ce fichier contient les données ASCII nécessaires pour les bases
d’information d’IP, ICMP, TCP et UDP pour un agent SNMP.
/proc/net/tcp
Fournit le contenu 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 la
pair de numéros de port. Le champ « rem_address » contient
l’adresse distante et la paire de numéros de port (si la socket
est connectée). « St » est l’état interne de la socket.
« tx_queue » et « rx_queue » représentent les files d’attente en
émission et en réception en ce qui concerne l’utilisation de la
mémoire par le noyau. Les champs « tr », « tm->when » et
« rexmits » contiennent des données internes au noyau ne servant
qu’au débogage. Le champ uid contient l’identifiant
d’utilisateur (UID) effectif du créateur de la socket.
/proc/net/udp
Fournit le contenu 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 la
paire de numéros de port. Le champ « rem_address » contient
l’adresse distante et la paire de numéros de port (si la socket
est connectée). « St » est l’état interne de la socket.
« tx_queue » et « rx_queue » représentent les files d’attente en
émission et en réception en ce qui concerne l’utilisation de la
mémoire par le noyau. Les champs « tr », « tm->when » et
« rexmits » ne sont pas utilisés par UDP. Le champ uid contient
l’identifiant d’utilisateur (UID) effectif du créateur de la
socket. Le format est :
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 :
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.
Ce fichiers a été déprécié au profit d’une nouvelle interface
/proc pour le PCI (/proc/bus/pci). Il est devenu optionnel dans
Linux 2.2 (disponible par l’intermédiaire de
CONFIG_PCI_OLD_PROC, défini à la compilation du noyau). Il est
devenu non optionnel une fois de plus dans Linux 2.4. Ensuite,
il a été déprécié dans Linux 2.6 (il reste disponible par
l’intermédiaire du positionnement de CONFIG_PCI_LEGACY_PROC), et
il a finalement été entièrement supprimé depuis Linux 2.6.17.
/proc/scsi
Répertoire regroupant les pseudo-fichiers du niveau scsi
intermédiaire et divers sous-répertoires pour les pilotes SCSI
de bas-niveau. Ils contiennent un fichier pour chaque hôte SCSI
du système, chacun d’entre-eux donnant l’état d’une partie du
sous-système d’E/S SCSI. Les fichiers contiennent des structures
sous forme ASCII, et sont donc lisibles avec cat(1).
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 superutilisateur
d’ajouter un périphérique branché à chaud à la liste des
périphériques connus.
La commande
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_pilote]
Le [nom_de_pilote] 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 pilote 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 superutilisateur 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
fichiers /proc, et est identique au sous-répertoire de /proc
ayant pour nom le PID du processus appelant.
/proc/slabinfo
Information concernant les caches du noyau. Depuis Linux 2.6.16,
ce fichier n’est présent que si l’option de configuration du
noyau CONFIG_SLAB est validée. Les colonnes de /proc/slabinfo
sont :
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
Voir slabinfo(5) pour des détails.
/proc/stat
Statistiques du noyau, et du système. Varie avec l’architecture,
les entrées communes sont :
cpu 3357 0 4313 1362393
Temps, mesuré en unités de USER_HZ (centièmes de seconde
sur la plupart des architectures, utilisez
sysconf(_SC_CLK_TCK) pour connaître la valeur correcte),
que le système a passé en mode utilisateur, en mode
utilisateur avec une basse priorité (« courtoisie
élevée » : nice), 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.
Avec Linux 2.6, cette ligne comporte trois colonnes
supplémentaires : iowait - temps à attendre pour que
l’E/S se termine (depuis 2.5.41) ; irq - délai pour
prendre en compte l’interruption (depuis 2.6.0-test4) ;
softirq - délai pour prendre en compte les interruptions
logicielles (depuis 2.6.0-test4).
Depuis Linux 2.6.11, il y a une huitième colonne, vole -
le temps volé, qui est le temps passé dans d’autres
systèmes d’exploitation lorsqu’un environnement
virtualisé est actif
Depuis Linux 2.6.14, il y a une neuvième colonne, guest,
qui est le temps passé à exécuter un processeur virtuel
pour des systèmes d’exploitation invités sous le contrôle
du noyau Linux.
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
Cette ligne contient le nombre d’interruptions qui ont
été prises en compte depuis le démarrage du système, pour
chacune des interruptions possibles. La première colonne
est le total de toutes les interruptions ayant été prises
en compte ; chacune des colonnes suivantes représente le
total pour une interruption particulière.
disk_io: (2,0):(31,30,5764,1,2) (3,0):...
(major,disk_idx):(noinfo, read_io_ops, blks_read,
write_io_ops, blks_written)
(Linux 2.4 seulement)
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 86031
Le nombre de processus exécutés sur le système depuis le
démarrage.
procs_running 6
Nombre de processus dans un état exécutable. (à partir de
Linux 2.5.45).
procs_blocked 2
Nombre de processus bloqués en attente de fin d’E/S. (À
partir de Linux 2.5.45).
/proc/swaps
Les zones de swap utilisées. Voir aussi swapon(8).
/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 (obsolète) sysctl(2).
Actuellement, il existe les sous-répertoires abi, debug, dev,
fs, kernel, net, proc, rxrpc, sunrpc et vm qui contiennent
chacun des fichiers et d’autres sous-répertoires.
/proc/sys/abi (depuis Linux 2.4.10)
Ce répertoire peut contenir des fichiers d’informations sur
l’exécutable de l’application Voir le fichier fourni avec les
sources du noyau Documentation/sysctl/abi.txt pour plus
d’informations.
/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 exemple dev/cdrom/info). Sur certains
systèmes, il peut être vide.
/proc/sys/fs
On trouve ici les sous-répertoires binfmt_misc, epoll, inotify,
and mqueue, 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,
suid_dumpable, super-max et super-nr.
/proc/sys/fs/binfmt_misc
La documentation concernant les fichiers de ce répertoire se
trouve dans les sources du noyau, dans
Documentation/binfmt_misc.txt.
/proc/sys/fs/dentry-state (depuis Linux 2.2)
Ce fichier contient des informations sur l’état du cache de
répertoire (dcache). 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 est le nombre d’entrées dcache allouées. Ce champ
n’est pas utilisé dans Linux 2.2.
* nr_unused est le nombre d’entrées de répertoire libres.
* age_limit est l’âge en seconde après lequel les entrées de
cache peuvent être réclamées quand la mémoire libre diminue.
* want_pages n’est pas nul quand le noyau a appelé
shrink_dcache_pages() et que le cache de répertoire n’a pas
encore été élagué.
/proc/sys/fs/dir-notify-enable
ce fichier peut être utilisé pour activer ou inhiber l’interface
dnotify décrite dans fcntl(2) 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/epoll (depuis Linux 2.6.28)
Ce répertoire contient le fichier max_user_watches, qui peut
être utilisé pour limiter la quantité de mémoire du noyau
utilisée par l’interface epoll. Voir epoll(7) pour davantage
d’informations.
/proc/sys/fs/file-max
Ce fichier est la limite système du nombre de fichiers ouverts
par un processus. (Voir aussi setrlimit(2) qui peut servir à
fixer la limite par processus, RLIMIT_NOFILE). 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 NR_OPEN 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’inodes.
/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’inodes 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 inode. Lorsque vous manquez régulièrement d’inode,
augmentez cette valeur.
/proc/sys/fs/inode-nr
Ce fichier contient les deux premières valeurs d’inode-state.
/proc/sys/fs/inode-state
Ce fichier contient sept nombres : nr_inodes, nr_free_inodes,
preshrink et quatre valeurs non significatives. nr_inodes est le
nombre d’inodes 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’inodes libres.
preshrink est non-nul lorsque nr_inodes > inode-max et que le
système doit purger la liste d’inodes plutôt qu’en allouer
davantage.
/proc/sys/fs/inotify (depuis Linux 2.6.13)
Ce répertoire contient les fichiers max_queued_events,
max_user_instances, et max_user_watches, qui peuvent être
utilisés pour limiter la quantité de mémoire du noyau utilisée
par l’interface inotify. Voir inotify(7) pour davantage
d’informations.
/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 (file lease, voir
fcntl(2)) 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 (file lease, voir fcntl(2)) 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/mqueue (depuis Linux 2.6.6)
Ce répertoire contient les fichiers msg_max, msgsize_max, et
queues_max, qui contrôlent les ressources utilisées par les
files de messages POSIX. Voir mq_overview(7) pour davantage
d’informations.
/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/suid_dumpable (depuis Linux 2.6.13)
La valeur de ce fichier détermine si des fichiers d’images
mémoire ont été produit pour « set-user-ID » ou d’autre binaires
protégés ou corrompus. Trois différentes valeurs entières
peuvent être indiquées :
0 (dfaut) Ceci donne le comportement traditionnel (antérieur à
Linux 2.6.13). Une image mémoire ne sera pas produite pour un
processus qui a modifié ses droits (en appelant seteuid(2),
setgid(2), ou autre, ou en exécutant un programme set-user-ID ou
set-group-ID) ou dont le binaire n’a pas le droit de lecture
actif.
1 ( debug ) Des images mémoire de tous les processus seront
faites si possible. L’image mémoire appartient à l’identifiant
d’utilisateur du système de fichiers du processus dont l’image a
été créée et aucune mesure de sécurité n’est prise. Ceci n’est
prévu que dans des situations où l’on souhaite déboguer le
système. Ptrace n’est pas vérifié.
2 ( suidsafe ) L’image mémoire d’un binaire qui n’aurait
normalement pas été effectuée (voir « 0 » ci-dessus) est prise
lisible par le superutilisateur (root) seulement. Ceci permet à
l’utilisateur de pourvoir supprimer l’image mémoire mais pas de
la lire. Pour des raisons de sécurité, les images mémoires
prises dans ce mode n’en écraseront pas une autre ou d’autres
fichiers. Ce mode est adéquat lorsque l’administrateur essaie de
déboguer des problèmes dans un environnement normal.
/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 super-max que si vous désirez
monter plus de systèmes de fichiers que ce que la valeur
actuelle de super-max vous permet.
/proc/sys/fs/super-nr
contient le nombre de systèmes de fichiers montés actuellement.
/proc/sys/kernel
Ce répertoire contient des fichiers contrôlant tout une série de
paramètres, décrits ci-dessous.
/proc/sys/kernel/acct
Ce fichier contient trois nombres : un seuil haut, un seuil bas
et une priode. 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 priode (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 à partir de 4% et la vérification a lieu toutes les 30
secondes.
/proc/sys/kernel/cap-bound (de Linux 2.2 à 2.6.24)
Ce fichier conserve la valeur de limitation de capacits du
noyau (exprimée comme un nombre décimal signé). Cet ensemble est
filtré par un ET binaire avec les capacités du processus lors
d’un execve(2). À partir de Linux 2.6.25, la limitation de
capacités à l’échelle du système a disparu pour être remplacé
par une limitation au niveau des threads ; voir capabilities(7).
/proc/sys/kernel/core_pattern
Consultez core(5).
/proc/sys/kernel/core_uses_pid
Consultez core(5).
/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-Suppr est
capturé et envoyé au programme init(8) 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 ctl-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(1) et hostname(1). C’est-à-dire :
# 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(1).
/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
(Sur PowerPC seulement). Ce fichier contient un indicateur
commandant le cache L2 des cartes à processeur G3. Le cache est
désactivé si la valeur est nulle, activé sinon.
/proc/sys/kernel/modprobe
Ce fichier comporte le chemin du chargeur de modules du noyau.
Sa valeur par défaut est /sbin/modprobe. Ce fichier n’est
présent que si le noyau est construit avec l’option CONFIG_KMOD
activée. Ceci est décrit dans le fichier du noyau
Documentation/kmod.txt (il n’est présent que dans les version de
noyau 2.4 et antérieures).
/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 System V.
/proc/sys/kernel/msgmni
Ce fichier définit la limite pour le système du nombre
d’identifiants de files de messages. (Ce fichier n’existe que
depuis Linux 2.4).
/proc/sys/kernel/msgmnb
Ce fichier définit un paramètre valable pour l’ensemble du
système utilisé pour initialiser la valeur msg_qbytes pour la
création ultérieure de files de messages. La valeur msg_qbytes
indique le nombre maximal d’octets qui pourront être écrits dans
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
panic_timeout du noyau. Si elle vaut zéro, le noyau se mettra en
boucle en cas de panique ; sinon elle indique que le noyau devra
redémarrer de lui-même après le nombre de secondes qu’elle
contient. Si vous utilisez le pilote logiciel de surveillance
watchdog, la valeur recommandée est de 60.
/proc/sys/kernel/panic_on_oops (depuis Linux 2.5.68)
Ce fichier 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/pid_max (depuis Linux 2.5.34)
Ce fichier indique la valeur à partir de laquelle la
numérotation des PID reprendra à sa valeur initiale (ce qui
signifie que 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 PID que sur les noyaux antérieurs. Pour les
plates-formes 32 bits, la valeur maximum de pid_max est de
32768. Pour les systèmes 64 bits, pid_max peut avoir n’importe
quelle valeur 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. Voir syslog(2) pour
plus d’information sur les différents niveaux. 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 (voir pts(4)) sur le système.
/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
Ce répertoire contient divers paramètres contrôlant le
fonctionnement du fichier /dev/random. Voir random(4) pour
davantage d’informations.
/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
(Uniquement pour les noyaux jusqu’à 2.6.7 inclus ; voir
setrlimit(2)).Ce fichier peut être utilisé pour ajuster le
nombre maximum de signaux POSIX temps-réel (en file d’attente)
pouvant se trouver en attente sur le système.
/proc/sys/kernel/rtsig-nr
(Uniquement pour les noyaux de Linux jusqu’à 2.6.7 inclus). Ce
fichier indique le nombre de signaux POSIX temps-réel
actuellement en file attente.
/proc/sys/kernel/sem (disponible depuis Linux 2.4)
contient 4 limites pour les sémaphores System 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(2).
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 System 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 System 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 System V que l’on peut
créer.
/proc/sys/kernel/sysrq
Ce fichier contrôle les fonctions qui peuvent être appelées par
les combinaisons SysRq. Par défaut, le fichier contient un
« 1 », ce qui signifie que toute demande SysRq est autorisée
(dans les anciennes versions du noyau, SysRq était désactivé par
défaut, et il fallait l’activer explicitement lors de
l’exécution, mais ce n’est plus le cas). Les valeurs possibles
dans ce fichier sont :
0 - désactiver sysrq complètement
1 - activer toutes les fonctions de sysrq
>1 - masque de bits des sysrq autorisées, défini comme ceci :
2 - active le contrôle du niveau de journalisation de
la console
4 - active le contrôle du clavier (SAK, unraw
8 - active la production d’images de débogue des
processus, etc.
16 - active la commande sync
32 - active le remontage en lecture seule
64 - active l’envoi de signaux aux processus (term,
kill, oom-kill)
128 - autorise reboot/poweroff
256 - autorise la définition de la politesse de toutes
les tâches temps réel
Ce fichier n’est présent que si l’option de configuration du
noyau CONFIG_MAGIG_SYSRQ a été validée. Pour plus
d’informations, consultez Documentation/sysrq.txt dans les
sources du noyau.
/proc/sys/kernel/version
Ce fichier contient une chaîne du type :
#5 Wed Feb 25 21:49:24 MET 1998
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/threads-max (disponible depuis Linux 2.3.11)
Ce fichier contient le nombre maximal de threads (tâches) qui
peuvent être créés sur le système.
/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 éléments relatif au réseau. Des
explications pour certains des fichiers de ce répertoire peuvent
être trouvées dans tcp(7) et ip(7).
/proc/sys/net/core/somaxconn
Ce fichier défini une valeur plafond pour le paramètre backlog
de listen(2) ; consultez la page de manuel listen(2) pour des
détails.
/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/sys/vm/drop_caches (depuis Linux 2.6.16)
Écrire dans ce fichier fait libérer de la mémoire par le noyau,
les caches, dentries et inodes propres, en libérant ainsi cette
mémoire libre.
Pour libérer les pagecache, utilisez echo 1 >
/proc/sys/vm/drop_caches ; to libérer les dentries et les
inodes, utilisez echo 2 > /proc/sys/vm/drop_caches ; pour
libérer les pagecache, dentries et inodes, utilisez echo 3 >
/proc/sys/vm/drop_caches.
Parce que cette opération est non-destructive, et que les objets
sales ne sont pas libérables, l’utilisateur doit utiliser la
commande sync(8) au préalable.
/proc/sys/vm/swappiness
La valeur dans ce fichier contrôle le niveau d’agressivité
utilisé par le noyau pour déplacer des pages mémoire dans
l’espace d’échange. Les valeurs élevées indique une agressivité
plus importante. La valeur par défaut est de 60.
/proc/sys/vm/legacy_va_layout (depuis Linux 2.6.9)
S’il est non nul, ceci désactive la nouvelle disposition de
carte mémoire 32 bit ; le noyau utilisera alors la disposition
habituelle (legacy) (2.4) pour tous les processus.
/proc/sys/vm/oom_dump_tasks (depuis Linux 2.6.25)
Active la production d’une image des tâches du système (à
l’exception des threads du noyau) lors des mises à mort sur
mémoire saturée. L’image comprend les informations suivantes
pour chaque tâche (thread ou processus) : identifiant de thread,
identifiant d’utilisateur réel, identifiant du groupe de thread
(identifiant du processus) taille de la mémoire virtuelle, taile
de la mémoire résidante, CPU sur lequel la tâche était
ordonnancée, valeur de oom_adj (voir la description de
/proc/[pid]/oom_adj) et le nom de la commande. C’est utile pour
trouver la raison de la mise à mort sur mémoire saturée et pour
identifier la tâche défectueuse qui en est la cause.
Avec la valeur zéro, l’information est supprimée. Sur les très
gros système avec des milliers de tâches, il peut ne pas être
faisable de créer l’image avec les informations sur chacune. Ces
systèmes ne devraient pas être obligés de pénaliser leurs
performances dans ces cas de pénurie de mémoire si ces
informations ne sont pas désirées.
Pour toute valeur non nulle, les informations sont présentées à
chaque mise à mort sur mémoire saturée.
La valeur par défaut est 0.
/proc/sys/vm/oom_kill_allocating_task (depuis Linux 2.6.24)
Ceci active ou désactive la mise à mort de la tâche qui produit
l’erreur dans les situations de mémoire saturée.
Avec une valeur de zéro, la liste des tâches sera parcourue et
la tâche à tuer sera sélectionnée en fonction d’heuristiques.
Ceci sélectionne normalement une tâche consommant une grosse
quantité de mémoire qui libérera beaucoup de mémoire lorsqu’elle
sera tuée.
Avec une valeur non nulle, la tâche tuée sera celle qui échouera
lors d’une allocation de mémoire. Ceci évite un parcours de la
liste des tâches qui peut être coûteux.
Si /proc/sys/vm/panic_on_oom est non nul, il est prioritaire sur
toute valeur utilisée dans
/proc/sys/vm/oom_kill_allocating_task.
La valeur par défaut est 0.
/proc/sys/vm/overcommit_memory
Ce fichier contient le mode pour les statistiques de la mémoire
virtuelle du noyau. Les valeurs sont :
0: gestion heuristique du dépassement de l’allocation
mémoire (c’est la valeur par défaut)
1: pas de gestion du dépassement, ne jamais vérifier
2: toujours vérifier, gestion stricte du dépassement
Dans le mode 0, les appels à mmap(2) utilisant MAP_NORESERVE ne
sont pas vérifiés et le niveau de vérification par défaut est
très faible, laissant le risque d’avoir un processus
« OOM-killed ». Sous Linux 2.4, toute valeur non nulle implique
le mode 1. Dans le mode 2 (disponible depuis Linux 2.6),
l’espace d’adressage virtuel total sur le système est limité à
(SS + RAM*(r/100)), où SS est la taille de l’espace d’échange
(« swap »), RAM la taille de la mémoire physique, et r le
contenu du fichier /proc/sys/vm/overcommit_ratio.
/proc/sys/vm/overcommit_ratio
Voir la description de /proc/sys/vm/overcommit_memory.
/proc/sys/vm/panic_on_oom (depuis Linux 2.6.18)
Ceci active ou désactive le déclenchement d’une panique dans les
situations de mémoire saturée.
Si ce fichier est configuré à la valeur 0, le noyau (le
« OOM-killer ») tuera un processus perturbateur. D’habitude, il
peut tuer un processus perturbateur et le système survivra.
Si ce fichier est configuré à la valeur 1, le noyau paniquera
dans une situation de mémoire saturée. Cependant, si un
processus limite les allocations que sur certains noeuds en
utilisant des politiques mémoire (MPOL_BIND dans mbind(2)) ou
des ensembles de processeurs (cpuset(7)), et si ces noeuds
voient leur mémoire saturée, un processus peut être tué par le
OOM-killer. Aucune panique ne survient dans ce cas. Comme de la
mémoire est disponible sur d’autres noeuds, le système n’a pas
entièrement atteint une situation de mémoire saturée.
Si ce fichier est configuré à la valeur 2, le noyau panique
toujours dans une situation de mémoire saturée.
La valeur par défaut est 0. Les valeurs 1 et 2 sont utilisées
pour la récupération en cas d’erreur de groupements.
Sélectionnez l’un ou l’autre en fonction de votre politique de
récupération en cas d’erreur.
/proc/sysrq-trigger (depuis Linux 2.4.21)
L’écriture d’un caractère dans ce fichier déclenche la même
fonction SysRq que la combinaison ALT-SysRq-<caractère> (voir la
description de /proc/sys/kernel/sysrq). Ce fichier est
normalement accessible en écriture que pour root. Pour plus
d’informations, consultez le fichier Documentation/sysrq.txt
dans les sources du noyau.
/proc/sysvipc
Sous-répertoire contenant les pseudo-fichiers msg, sem and shm.
Ces fichiers listent les objets d’IPC System V (soient les files
de messages, les sémaphores, et la mémoire partagée) existant
actuellement sur le système, en donnant les mêmes informations
que celles disponibles par la commande ipcs(1). Ces fichiers ont
des en-têtes et sont formatés (à raison d’un objet IPC par
ligne) de façon à être lus facilement. La page svipc(7) donne
davantage d’informations concernant les données fournies par ces
fichiers.
/proc/tty
Sous-répertoire contenant les pseudo-fichiers et les
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/kernel/ostype,
/proc/sys/kernel/osrelease et /proc/sys/kernel/version. Par
exemple :
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
/proc/vmstat (depuis Linux 2.6)
Ce fichier contient diverses statistiques sur la mémoire
virtuelle.
/proc/zoneinfo (depuis Linux 2.6.13)
Ce fichier affiche des informations concernant les zones
mémoire. C’est utile pour analyser le comportement de la mémoire
virtuelle.
NOTES
De nombreuses chaînes (par exemple, l’environnement et de la ligne de
commande) sont affichées dans un format interne, ses champs terminés
par un caractère nul. Il est parfois plus lisible d’utiliser od -c ou
tr "\000" "\n" pour les lire. En remplacement, la commande echo cat
<file> fonctionne bien.
Cette page de manuel est incomplète, incertaine, et devrait être mise à
jour très souvent.
VOIR AUSSI
cat(1), dmesg(1), find(1), free(1), ps(1), tr(1), uptime(1), chroot(2),
mmap(2), readlink(2), syslog(2), slabinfo(5), hier(7), time(7), arp(8),
hdparm(8), ifconfig(8), init(8), lsmod(8), lspci(8), mount(8),
netstat(8), procinfo(8), route(8)
Les fichiers source du noyau : Documentation/filesystems/proc.txt,
Documentation/sysctl/vm.txt
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Jean-Luc Coulon (f5ibh)
<jean-luc.coulon@wanadoo.fr> et l’équipe francophone de traduction de
Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».