Dans cet article, nous aborderons la gestion des processus sous Linux. Un processus sous Linux n'est rien d'autre qu'un programme en cours d'exécution. C'est une instance en cours d'exécution d'un programme. Toute commande que vous exécutez démarre un processus.
Types de processus sous Linux
Sous Linux, les processus peuvent être de deux types :
- Processus de premier plan
dépendent de l'utilisateur pour la saisie
également appelés processus interactifs
- Processus en arrière-plan
fonctionner indépendamment de l'utilisateur
appelés processus non interactifs ou automatiques
États de processus sous Linux
Un processus sous Linux peut passer par différents états après sa création et avant sa fin. Ces états sont :
- Courir
- Dormir
- Sommeil interruptible
- Sommeil ininterrompu
- Arrêté
- Zombie
- Un processus en exécution état signifie qu'il est en cours d'exécution ou qu'il est prêt à fonctionner.
- Le processus est dans un sommeil indiquer quand il attend qu'une ressource soit disponible.
- Un processus en sommeil interruptible se réveillera pour gérer les signaux, alors qu'un processus en veille ininterruptible ne le sera pas.
- Un processus entre dans unarrêté lorsqu'il reçoit un signal d'arrêt.
- Zombie l'état est lorsqu'un processus est mort mais que l'entrée du processus est toujours présente dans la table.
Différentes commandes pour la gestion des processus sous Linux
Deux commandes sont disponibles sous Linux pour suivre les processus en cours d'exécution. Ces deux commandes sont Top et Ps .
1. La meilleure commande pour gérer les processus Linux
Pour suivre les processus en cours d'exécution sur votre machine, vous pouvez utiliser la commande top.
$ top
La commande Top affiche une liste des processus qui s'exécutent en temps réel avec leur utilisation de la mémoire et du processeur. Comprenons un peu mieux le résultat :
- PID :ID de processus unique attribué à chaque processus.
- Utilisateur :Nom d'utilisateur du propriétaire du processus.
- RP :Priorité donnée à un processus lors de la planification.
- NI : valeur « agréable » d'un processus.
- VIRT :Quantité de mémoire virtuelle utilisée par un processus.
- RES :Quantité de mémoire physique utilisée par un processus.
- SHR :Quantité de mémoire partagée avec d'autres processus.
- S :état du processus
- ‘D’ =sommeil ininterrompu
- "R" =courir
- ‘S’ =dormir
- "T" =tracé ou arrêté
- 'Z' =zombi
- %CPU :Pourcentage de CPU utilisé par le processus.
- %MEM; Pourcentage de RAM utilisé par le processus.
- TIME+ : Temps CPU total consommé par le processus.
- Commande :Commande utilisée pour activer le processus.
Vous pouvez utiliser le bouton haut/bas touches fléchées pour naviguer de haut en bas dans la liste. Pour quitter, appuyez sur q . Pour tuer un processus, mettez-le en surbrillance avec les touches fléchées haut/bas et appuyez sur 'k'.
Alternativement, vous pouvez également utiliser la commande kill, que nous verrons plus tard.
2. commande ps
La commande ps est l'abréviation de "Process Status". Il affiche les processus en cours d'exécution. Cependant, contrairement à la commande top, la sortie générée n'est pas en temps réel.
$ ps
La terminologie est la suivante :
PID | ID de processus |
ATS | type de borne |
HEURE | durée totale d'exécution du processus |
CMD | nom de la commande qui lance le processus |
Pour obtenir plus d'informations à l'aide de la commande ps, utilisez :
$ ps -u
Ici :
- %CPU représente la quantité de puissance de calcul utilisée par le processus.
- %MEM représente la quantité de mémoire occupée par le processus.
- STAT représente l'état du processus.
Bien que la commande ps n'affiche que les processus en cours d'exécution, vous pouvez également l'utiliser pour répertorier tous les processus.
$ ps -A
Cette commande répertorie même les processus qui ne sont pas en cours d'exécution.
3. Arrêter un processus
Pour arrêter un processus sous Linux, utilisez le 'kill' commande. La commande kill envoie un signal au processus.
Il existe différents types de signaux que vous pouvez envoyer. Cependant, le plus courant est 'kill -9' qui est 'SIGKILL ‘.
Vous pouvez lister tous les signaux en utilisant :
$ kill -L
Le signal par défaut est 15, qui est SIGTERM . Ce qui signifie que si vous utilisez simplement la commande kill sans numéro, elle envoie le signal SIGTERM.
La syntaxe pour tuer un processus est :
$ kill [pid]
Alternativement, vous pouvez également utiliser :
$ kill -9 [pid]
Cette commande enverra un signal « SIGKILL » au processus. Cela devrait être utilisé au cas où le processus ignorerait une demande de destruction normale.
4. Changer la priorité d'un processus
Sous Linux, vous pouvez hiérarchiser les processus. La valeur de priorité d'un processus est appelée la valeur "Niceness". La valeur de gentillesse peut aller de -20 à 19 . 0 est la valeur par défaut.
La quatrième colonne de la sortie de la commande top est la colonne de la valeur de gentillesse.
Pour démarrer un processus et lui donner une belle valeur autre que celle par défaut, utilisez :
$ nice -n [value] [process name]
Pour modifier la valeur nice d'un processus qui est déjà en cours d'exécution, utilisez :
renice [value] -p 'PID'
Conclusion
Ce tutoriel a couvert la gestion des processus sous Linux. Ce sont principalement les aspects pratiques de la gestion des processus qui ont été abordés. En théorie, la gestion des processus est un vaste sujet et le couvrir dans son intégralité est hors de portée de ce didacticiel.