« /proc » : différence entre les versions
m (Début d'article) |
m (Lea a déplacé la page L'arborescence /proc vers /proc) |
||
(3 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
= Introduction = | = Introduction = | ||
Ligne 11 : | Ligne 9 : | ||
Attention : La commande "echo" de certains shells ne renvoie pas de message d'erreur en cas d'incident. Il est donc préférable d'utiliser /bin/echo. | Attention : La commande "echo" de certains shells ne renvoie pas de message d'erreur en cas d'incident. Il est donc préférable d'utiliser /bin/echo. | ||
/proc continue d'évoluer avec le noyau, et certains fichiers décrits ci-dessous n'existent pas dans certaines versions. La branche du noyau qui a servi de référence est la 2.6 | |||
== Les processus == | == Les processus == | ||
Ligne 30 : | Ligne 28 : | ||
'''environ''' : Variables d'environnement. Pour les afficher clairement, faire un ''tr '\0' '\n' < environ''<br/> | '''environ''' : Variables d'environnement. Pour les afficher clairement, faire un ''tr '\0' '\n' < environ''<br/> | ||
'''exe''' : lien vers l'exécutable<br/> | '''exe''' : lien vers l'exécutable<br/> | ||
'''fd''' : répertoire contenant les descripteurs des fichiers ouverts.<br/> | '''fd''' : répertoire contenant les descripteurs des fichiers ouverts. Les fichiers 0, 1 et 2 correspondent à l'entrée standard, la sortie standard et la sortie d'erreur. Les autres descripteurs correspondent aux autres "fichiers" ouverts (un fichier peut être un fichier, une socket, un tube). Dans certains cas, on peut utiliser ces descripteurs de fichiers pour récupérer un fichier ouvert supprimé : il suffit de copier /proc/pid/fd/X vers un autre répertoire.<br/> | ||
'''maps''' : carte des composants de l'espace d'adresses<br/> | '''maps''' : carte des composants de l'espace d'adresses<br/> | ||
'''mem''' : fichier d'accès à la mémoire<br/> | '''mem''' : fichier d'accès à la mémoire<br/> | ||
'''mounts''' : systèmes de fichiers montés visibles<br/> | '''mounts''' : systèmes de fichiers montés visibles<br/> | ||
'''oom_adj''' : ajustement du score OOM (Out Of Memory). Ce score permet au système de choisir quelle tâche sera supprimée en cas d'OOM. La valeur peut être située entre -16(tâche prioritaire) à 15 (tâche à supprimer en priorité). Il y a de plus la valeur particulière -17 qui empêche la suppression de la tâche en cas d'OOM<br/> | '''oom_adj''' : ajustement du score OOM (Out Of Memory). Ce score permet au système de choisir quelle tâche sera supprimée en cas d'OOM. La valeur peut être située entre -16(tâche prioritaire) à 15 (tâche à supprimer en priorité). Il y a de plus la valeur particulière -17 qui empêche la suppression de la tâche en cas d'OOM. Ce fichier est modifiable et on peut donc modifier le score avec une simple commande /bin/echo<br/> | ||
'''oom_score''' : score actuel de la tâche. Plus le score est élevée, plus la tâche risque d'être supprimée en cas d'OOM.<br/> | |||
'''root''' : lien vers le répertoire racine <br/> | |||
'''smaps''' : donne des informations plus précises que le fichier maps. La partie résidente en mémoire de chaque composant est indiqué.<br/> | |||
'''stat''' : état détaillé <br/> | |||
'''statm''' : information sur la mémoire <br/> | |||
'''status''' : description de la tâche (reprend les informations de stat et statm, et les affiche dans un format plus lisible<br/> | |||
'''tasks''' : fichier contenant des liens vers le différents threads de la tâche. <br/> | |||
== Les informations réseau == | |||
Ces informations se trouvent dans /proc/net. Les adresses IP sont écrites en hexa. On retrouve toutes les informations des commandes usuelles (ifconfig, route, iptables, netstat,...) | |||
/proc/net/route correspond à la table de routage | |||
Oudoubah 2007 | |||
{{Administration système}} |
Dernière version du 30 décembre 2023 à 15:41
Introduction
/proc est un pseudo système de fichiers. Il est montable, démontable et apparait dans la fstab. Pour monter un psudo système de fichiers /proc, il suffit de monter un type de système de fichier proc (option -t de mount). Exemple : mount -t proc nom /repertoire
La visualisation des fichiers de /proc permettent à tout instant de connaître la configuration de son système. La modification des fichiers permettent de tuner à chaud son système (via la commande /bin/echo ou cat)
Attention : La commande "echo" de certains shells ne renvoie pas de message d'erreur en cas d'incident. Il est donc préférable d'utiliser /bin/echo.
/proc continue d'évoluer avec le noyau, et certains fichiers décrits ci-dessous n'existent pas dans certaines versions. La branche du noyau qui a servi de référence est la 2.6
Les processus
Les processus sont identifiés par leur identifiant de tâche (TID). Pour simplifier, on peut assumer que le TID et le PID sont équivalent. (La notion de TID est apparue dans les noyaux 2.6, avec l'utilisation de la librairie NPTL).
Il y a deux types de processus : les processus système (ou noyau) et les processus utilisateur. Ils sont tous deux basés sur la même hiérarchie. Nous verrons au cours de la description du contenu de /proc/TID les différences d'un pocessus système et d'un processus utilisateur
Contenu du répertoire d'un processus
attr : répertoire contenant les attributs de sécurité
auxv : fichier binaire. Informations passées par le noyau lors de l'édition de liens dynamiques
cmdline : Fichier texte contenant la ligne de commande :
Exemple :
# tr '\0' ' '< cmdline
dhcpcd -t 30 -h Tuxtop ath0
cwd : lien vers le répertoire courant
environ : Variables d'environnement. Pour les afficher clairement, faire un tr '\0' '\n' < environ
exe : lien vers l'exécutable
fd : répertoire contenant les descripteurs des fichiers ouverts. Les fichiers 0, 1 et 2 correspondent à l'entrée standard, la sortie standard et la sortie d'erreur. Les autres descripteurs correspondent aux autres "fichiers" ouverts (un fichier peut être un fichier, une socket, un tube). Dans certains cas, on peut utiliser ces descripteurs de fichiers pour récupérer un fichier ouvert supprimé : il suffit de copier /proc/pid/fd/X vers un autre répertoire.
maps : carte des composants de l'espace d'adresses
mem : fichier d'accès à la mémoire
mounts : systèmes de fichiers montés visibles
oom_adj : ajustement du score OOM (Out Of Memory). Ce score permet au système de choisir quelle tâche sera supprimée en cas d'OOM. La valeur peut être située entre -16(tâche prioritaire) à 15 (tâche à supprimer en priorité). Il y a de plus la valeur particulière -17 qui empêche la suppression de la tâche en cas d'OOM. Ce fichier est modifiable et on peut donc modifier le score avec une simple commande /bin/echo
oom_score : score actuel de la tâche. Plus le score est élevée, plus la tâche risque d'être supprimée en cas d'OOM.
root : lien vers le répertoire racine
smaps : donne des informations plus précises que le fichier maps. La partie résidente en mémoire de chaque composant est indiqué.
stat : état détaillé
statm : information sur la mémoire
status : description de la tâche (reprend les informations de stat et statm, et les affiche dans un format plus lisible
tasks : fichier contenant des liens vers le différents threads de la tâche.
Les informations réseau
Ces informations se trouvent dans /proc/net. Les adresses IP sont écrites en hexa. On retrouve toutes les informations des commandes usuelles (ifconfig, route, iptables, netstat,...)
/proc/net/route correspond à la table de routage
Oudoubah 2007