Gestion des processus sur GNU/Linux
LES actions du système sont nommées processus et figurent dans le répertoire /proc . Comme il n'est pas question de farfouiller là-dedans, les commandes suivantes nous permettent d'observer et agir sur ces processus.
Cette page explique le minimum à connaître sur un système GNU/Linux (ligne de commande, système de fichiers…)
#signifie que la commande doit être saisie avec les droits de super-utilisateur. Dans une console: saisir su et fournir le mot de passe root;En mode super-utilisateur: su - [Enter]- les système Unix font la différence entre majuscules et minuscules: go, Go, gO et GO sont différents;
- certaines commandes (top…) nécessitent un [q] pour en sortir.
1. ps 2. top 3. kill et killall 4. Mémoire
lscpu et cat /proc/cpuinfo informent sur les processeurs centraux.
1. ps
ps -ef permet de visualiser les processus en cours, par exemple (non exhaustif):
toto@diderot:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 09:14 ? 00:00:00 init [2] root 2 0 0 09:14 ? 00:00:00 [kthreadd] … toto 5115 2 0 11:39 ? 00:00:00 [kworker/u16:0] jc 5158 1 2 11:42 ? 00:00:01 pluma /home/toto/sites/linux/basiques.htm toto 5170 3174 15 11:43 ? 00:00:00 mate-terminal toto 5178 5170 0 11:43 ? 00:00:00 gnome-pty-helper toto 5179 5170 1 11:43 pts/0 00:00:00 bash toto 5221 5179 0 11:43 pts/0 00:00:00 ps -ef
- La première colonne représente le propriétaire du processus, la première colonne (PID) l'identité du processus (dans l'ordre de lancement): init reçoit logiquement le numéro 1. La troisième (PPID) représente le processus parent: nous voyons que la dernière commande, ps -ef (5221), dépend du bash (la ligne de commande, 5179) qui dépend de mate-terminal (5178)…
- La dernière colonne donne le nom de la commande. Pour plus de possibilités: man ps
- ps -fu toto ne liste que les processus lancés par toto, soit seuls ceux qu'il peut détruire lui-même.
pstree affiche l'arborescence des processus en cours
2. top
top affiche dans une console les caractéristiques des processus: numéro, utilisateur… pourcentages d'utilisation du CPU et de mémoire, temps d'utilisation et nom de la commande. L'affichage est dynamique, les données changeant toutes les trois secondes (par défaut), avec classement par pourcentage de ressource CPU utilisé. Pour une fois, man top sera assez explicatif.
Cette commande est très utile pour déceler les commandes ou logiciels gourmants en mémoire ou en utilisation du processeur. [q] pour en sortir.
3. kill et killall
kill nnn permet de détruire un processus lors d'une impossibilité de quitter une application par la voie normale, ce qui empêche parfois de la relancer (nnn représente son ProcessusIDentification, voir ci-dessus la colonne PID).
killall nom permet de détruire un processus par son nom de commande (voir la colonne CMD du 1.).
Attention! Les processus sont lancés soit par l'utilisateur, soit par le système. Pour tuer un processus, il est nécessaire de disposer du droit de le faire: un processus marqué root ne peut être tué que par le super-utilisateur.
4. Mémoire
free affiche en Kio (kilo-informatique=1024 octets) les volumes disponibles et occupés de la mémoire vive (RAM) et de la mémoire virtuelle (partition ou fichier swap). free -h pour une sortie «humaine»: Gio ou Mio selon la taille.
cat /proc/sys/vm/swappiness retourne le pourcentage non utilisé de RAM à partir duquel la partition ou le fichier swap est utilisé. Sur Debian c'est 60 par défaut.
# sysctl vm.swappiness=20 permet 80% de RAM active avant de solliciter la partition ou le fichier swap.
En mode super-utilisateur: su - [Enter]
cat /proc/meminfo donne le détail des mémoires globales utilisées, qui demande à être expliqué [page manquante 2020.01.24].
top ([q] pour sortir) affiche de façon dynamique l'utilisation des ressources de chaque processus…