_procStateGraph = {
const nodes = [
{ id: "shell", label: "💻 Shell Bash (PPID)", shape: "rounded rect", fx: 70, fy: 150 },
{ id: "fg", label: "▶️ Premier Plan\n(Running Foreground)", shape: "rounded rect", fx: 250, fy: 80 },
{ id: "paused", label: "⏸️ En Pause\n(Stopped / SIGSTOP)", shape: "rounded rect", fx: 460, fy: 80 },
{ id: "bg", label: "⚙️ Arrière-Plan\n(Running Background)", shape: "rounded rect", fx: 460, fy: 220 },
{ id: "dead", label: "⏹️ Terminé\n(Exited / Killed)", shape: "pill", fx: 250, fy: 220 }
];
const links = [
{ source: "shell", target: "fg", label: "commande" },
{ source: "fg", target: "paused", label: "Ctrl + Z (SIGSTOP)" },
{ source: "paused", target: "fg", label: "fg" },
{ source: "paused", target: "bg", label: "bg" },
{ source: "bg", target: "fg", label: "fg" },
{ source: "fg", target: "dead", label: "Ctrl + C (SIGINT)" },
{ source: "bg", target: "dead", label: "kill PID (SIGTERM / -9)" }
];
aptitek.renderStateMachineGraph("#process-lifecycle-graph", { nodes, links }, {
nodeRadius: 26,
fontSize: 9,
enableZoom: false,
enablePan: false,
zoomToFit: true,
zoomToFitPadding: 25,
height: 320
});
}Processus, Signaux & Contrôle de Tâches
Linux
Système & Réseau
Comprendre l’anatomie d’un processus (PID, PPID, UID), observer l’activité système (ps, pstree, top) et piloter les signaux (kill, killall, Ctrl+C, Ctrl+Z, fg, bg).
Tant qu’un programme (comme /bin/ls ou /usr/sbin/nginx) repose sur le disque dur, ce n’est qu’un fichier inerte. Dès que le noyau Linux le charge en mémoire vive (RAM) pour l’exécuter, il prend vie sous la forme d’une instance dynamique appelée un processus.
🧬 Anatomie et Isolation d’un Processus
Chaque processus actif sur le système est identifié par cinq attributs fondamentaux gérés par le noyau :
La Carte d’Identité du Processus
CMD(Exécutable) : Le nom de la commande et les arguments ayant servi à le lancer.UID(Propriétaire) : L’utilisateur qui a lancé le processus (détermine quels fichiers il a le droit d’ouvrir).PID(Process ID) : Le numéro unique attribué au processus par le noyau.PPID(Parent Process ID) : Le numéroPIDde son processus père (par exemple, votre shellbashest le père des commandes que vous tapez ; le tout premier processus au démarrage porte lePID 1).- État (State) : En exécution (Running), en attente (Sleeping), en pause (Stopped) ou terminé.
Isolation & Communication Inter-Processus
Par sécurité, chaque processus tourne dans une bulle de mémoire virtuelle isolée : un programme qui plante ne peut pas corrompre la mémoire d’un autre.
Les processus ne peuvent communiquer entre eux que via des mécanismes très spécifiques contrôlés par le noyau (IPC — Inter-Process Communication) :
- Les tubes (Pipes
|) et sockets réseau - Les signaux système (
SIGINT,SIGTERM,SIGSTOP) - La mémoire partagée (Shared Memory)
🔭 Lister et Surveiller les Processus (ps, pstree, top)
Trois outils complémentaires permettent d’inspecter les processus qui tournent sur une machine :
| Commande | Mode de fonctionnement | Ce qu’elle affiche |
|---|---|---|
ps [-edf] |
Statique (Photo) | Affiche la liste complète (-e) au format détaillé (-f) de tous les processus actifs à l’instant T (UID, PID, PPID, CMD). |
pstree |
Statique (Arbre) | Affiche l’arbre généalogique des processus depuis la racine PID 1, révélant qui a lancé quoi. |
top |
Interactif (Direct) | Tableau de bord en temps réel classant les processus par consommation CPU/RAM (q pour quitter, h pour l’aide). |
⚡ Interagir avec les Processus : Signaux & Contrôle Clavier
Sous Linux, on ne « force pas la fermeture d’une fenêtre » : on envoie un signal numérique ou nommé au processus pour lui ordonner de s’arrêter, de se mettre en pause ou de recharger sa configuration.
Machine à États d’un Processus & Signaux UNIX
🎯 Commandes kill, killall et Signaux Clavier
Envoyer un Signal (
kill & killall)
Contrairement à son nom anglais trompeur, kill sert à envoyer n’importe quel signal à un processus :
kill pid [-signal]: Cible un processus précis par son numéroPID. Par défaut (sans option), elle envoieSIGTERM(-15), qui demande poliment au programme de sauvegarder son état avant de se fermer.kill -9 pid(-SIGKILL) : L’arme ultime. Le noyau détruit immédiatement le processus sans lui laisser le temps de réagir.killall nom [-s signal]: Tue d’un seul coup tous les processus portant ce nom (ex:killall nginx).
Contrôle au Clavier (
Ctrl+C, Ctrl+Z, fg, bg)
Lorsque qu’une commande occupe votre terminal :
Ctrl + C(SIGINT) : Envoie le signal d’interruption pour arrêter immédiatement la commande en cours.Ctrl + Z(SIGSTOP) : Met le processus en pause et vous rend la main sur le prompt.bg(Background) : Relance le processus mis en pause en arrière-plan (vous pouvez continuer à taper d’autres commandes !).fg(Foreground) : Ramène le processus d’arrière-plan au premier plan.Ctrl + D(EOF) : Quitte la session et ferme le shell courant (équivalent àquitouexit).
🧪 Simulateur Interactif : Console de Gestion des Processus
Sélectionnez une opération d’inspection ou d’interaction pour observer la réaction des processus dans le terminal :
Poste de Contrôle des Processus & Signaux
Sortie du Terminal Système