
RHEL 10 - La gestion des processus et le monitoring
La commande ps
La commande ps permet d'afficher des informations sur l'exécution de processus. Elle produit une liste statique, ou instantanée, de ce qui est cours d'exécution au moment où la commande est exécutée.
- Lister tous les processus en cours d'exécution avec le propriétaire associé et les consommation CPU et RAM
ps aux
Pour trier la sortie par consommation de ressources
--sort=%cpu→ par utilisation CPU décroissante--sort=%mem→ par utilisation RAM décroissante
ps aux --sort=%cpu | head -5
Affiche les 5 processus les plus consommateurs de CPU
- Personnaliser la sortie de la commande
Pour afficher les colonnes concernant la priorité, l'id du processus, l'utilisateur et la commande associée en classant par priorité décroissante
ps -eo ni,pid,user,cmd --sort=ni
La liste des codes est disponible dans la page de manuel man ps
Pour afficher tous les processus d'un utilisateur en particulier
ps -u apache
Affiche la liste de tous les processus de l'utilisateur apache
La commande pstree
pstreeaffiche les processus en cours d'exécution sous forme d'arborescence. La racine de l'arborescence se trouve sur: soit le pid, soit le processus init si le pid est omis. Si un nom d'utilisateur est spécifié, tous les arbres de processus dont la racine se trouve sur les processus appartenant à cet utilisateur sont affichés.
-
Afficher une arborescence compacte des processus en cours d'exécution
pstree -
Afficher une arborescence des processus en cours d'exécution avec les
pidet les utilisateurs associéspstree -up -
Afficher une arborescence des processus appartenant un utilisateur spécifique
pstree apacheAffiche l'arborescence de tous les processus de l'utilisateur
apache
La commande top
La commande top affiche une liste en temps réel des processus exécutés sur le système. Elle affiche également des informations supplémentaires sur le temps d'activité du système, l'utilisation actuelle du CPU et de la mémoire, ou le nombre total de processus en cours d'exécution, et vous permet d'effectuer des actions comme le tri de la liste ou l'arrêt d'un processus.
normalements interactives
P→ Trie par utilisation CPU (défaut)M→ Trie par utilisation RAMu→ Affiche les processus d'un utilisateurn→ Limite la sortie à n lignesk→ Stoppe un processus par sonpidh→ Affiche une aider→ Change la priorité d'un processusq→ Quitte le programme
La commande free
La commande free fournit à la fois des informations sur la mémoire physique (Mem) et sur l'espace swap (Swap). Elle affiche le montant de mémoire total (total), ainsi que le montant de mémoire utilisée (used), la mémoire libre (free), la mémoire partagée (shared), les mémoires tampon et cache ajoutées ensemble (buff/cache), et ce qui reste de disponible (available).
-
Afficher l'état de la mémoire du système en Mo
free -m -
Afficher l'état de la mémoire du système de façon facilement lisible
free -h -
Afficher l'état de la mémoire du système avec une ligne total (mem + swap) supplémentaire de façon facilement lisible
free -th
Les commandes nice et renice
Ces deux commandes permettent d'exécuter un programme avec une priorité d'ordonnancement modifiée ou de redéfinir la priorité d'un processus en cours d'exécution.
Plage de valeurs nice: de -20 → priorité haute à 19 → priorité basse
-
Lancer une commande avec une priorité haute
nice -n -10 ./script_important.sh -
Lancer une commande avec une priorité basse
nice -n 15 ./script_secondaire.sh -
Donner une priorité haute à un processus en cours d'exécution
renice -n -10 -p 11511151 (process ID) old priority 0, new priority -10 -
Donner la priorité la plus basse à un processus en cours d'exécution
renice -n 19 -p 11511151 (process ID) old priority -10, new priority 19 -
Donner une priorité basse à tous les processus de l'utilisateur labuser1
renice -n 15 -u labuser11000 (user ID) old priority 0, new priority 15
Gestion des tâches avec jobs, bg et fg
-
Lancer une tâche en arrière-plan
sleep 180 & -
Lister les tâches du shell
jobs -l[1]+ 2531 En cours d'exécution sleep 180 & -
Ramener une tâche au premier-plan
fg %1sleep 180 -
Suspendre la tâche
Ctrl+z
[1]+ Stoppé sleep 180
- Reprendre la tâche en arrière-plan
bg %1
[1]+ sleep 180 &
Les commandes kill et killall
La commande
killenvoie le signal spécifié aux processus ou groupes de processus spécifiés. Si aucun signal n'est spécifié, le signal TERM est envoyé. L'action par défaut pour ce signal est de mettre fin au processus.
-
Lister les signaux disponibles
kill -lLes plus utilisés:
-
SIGTERM (15)→ arrêter normalement -
SIGKILL (9)→ forcer l'arrêt -
SIGSTOP (19)→ suspendre -
SIGCONT (18)→ reprendre après suspension -
Arrêter un processus en cours d'exécution
kill # PID -
Forcer l'arrêt d'un processus en cours d'exécution
kill -9 # PIDOu
kill -SIGKILL # PID
killallenvoie un signal à tous les processus exécutant l'une des commandes spécifiées. Si aucun nom de signal n'est spécifié, SIGTERM est envoyé.
- Terminer tous les processus d'un utilisateur
killall -u # utilisateurPour forcer l'arrêt
killall -9 -u # utilisateur
Sources principales:
- https://docs.redhat.com/fr/documentation/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-system_monitoring_tools
- https://www.redhat.com/en/blog/linux-command-basics-7-commands-process-management
- https://www.redhat.com/fr/blog/jobs-bg-fg
