Chapitre 3: Gestion des processus

Avant-propos

Nous vous recommandons de ne pas utiliser d’IA pour faire les exercices car vous êtes en phase d’apprentissage.

Introduction

Dans un système Linux, la gestion des processus est un aspect fondamental de l’administration du système et du fonctionnement des applications. Un processus est simplement un programme en cours d’exécution. Linux, comme tous les systèmes d’exploitation modernes, utilise des processus pour exécuter des tâches et organiser le travail.

Prérequis

Info: Si vous n’avez pas de d’environnement Linux à votre dispositon, vous pouvez vous inscrire sur https://killercoda.com et vous rendre ici https://killercoda.com/playgrounds/scenario/ubuntu pour avoir accès à une machine virtuelle sous Ubuntu 24.04 (sans interface graphique bien sûr !!) pendant 1 heure renouvellable gratuitement.

Vous aurez donc cette vue:



Généralités

Un processus est une instance d’un programme en exécution. Il peut être aussi simple qu’une commande lancée dans le terminal ou aussi complexe qu’une application en arrière-plan. Chaque processus possède son propre espace mémoire, son propre identifiant unique (PID) et des informations relatives à son état d’exécution. Si le processus 2 a été lancé par le processus 1, on l’appelle un processus fils. Le processus qui l’a lancé est appelé processus parent.


Il existe différents types de processus dans Linux :

TLDR (Résumé rapide)

Tapons un peu le clavier

A tester 👨🏾‍💻👩🏾‍💻:


Pour info, ps signifie process status. Elle nous permet d’afficher les processus en cours d’exécution. Vous aurez un retour similaire à:

PID    TTY          TIME CMD
380123 pts/3    00:00:00 bash
427931 pts/3    00:00:00 ps

Ci-dessous un tableau explicatif.

Colonne Signification Exemple
PID Identifiant unique attribué par Linux à chaque processus. bash: 380123
ps: 427931
TTY Terminal auquel le processus est attaché. Les pts/* sont des pseudo-terminaux, souvent ouverts lors d’une connexion SSH ou d’un terminal graphique. pts/3
TIME Temps CPU utilisé par le processus depuis son lancement. 00:00:00 (temps minimal pour des processus rapides ou inactifs)
CMD Commande ou programme lancé à l’origine du processus. bash (shell interactif)
ps (commande d’affichage des processus)


De ce résultat, on pourrait se poser deux (2) questions:

  1. La commande ps est elle-même un processus Linux. Lorsqu’elle est exécutée, elle se crée temporairement comme un processus, puis elle analyse les processus en cours d’exécution à ce moment précis. Ainsi, elle apparaît naturellement dans ses propres résultats.

  2. Par défaut, cette commande (ps) sans argument particulier affiche uniquement les processus associés à son terminal actuel. Cela explique pourquoi on ne voit que le shell (bash) qu’on utilise actuellement, ainsi que la commande ps elle-même.


A tester 👨🏾‍💻👩🏾‍💻:

Gestion des processus

Commandes permettant d’afficher les processus en cours d’exécution :

Exemples pratiques :


Rappel: La commande man et l’option –help est votre meilleur ami.


Autres commandes

Les commandes pgrep et pkill

La commande pgrep cherche, parmi les processus en cours d’exécution, un nom de processus et affiche sur la sortie standard les PID correspondants aux critères de sélection.

La commande pkill enverra le signal indiqué (par défaut SIGTERM) à chaque processus correspondant aux critères spécifiés.

Syntaxe :

Exemples :



Entraînement ⚔️

Exercice 1

Ci-dessous un exemple d’exécution:

# On télécharge le script du challenge 1
curl -LO https://raw.githubusercontent.com/N0vachr0n0/NoFD/refs/heads/main/PRM_EXO_1.sh

# On le rend exécutable
chmod +x PRM_EXO_1.sh

# On l'exécute pour démarrer le challenge
./PRM_EXO_1.sh

Exercice 2

C’est par ici: https://sadservers.com/scenario/saint-john



Feedback

Faites-nous part de votre avis sur ce chapitre.

👉🏾 Cliquez ici