Linux — utilisation avancée et administration · Étape 12

Gère les signaux, la priorité et les jobs

Suspend, reprends et termine un groupe de processus, puis distingue job control, signaux et priorité.

Durée indicative · ~1 h 30Niveau intermédiairePrérequis conseillé · Leçon 11 — processus et hiérarchiePratique · TP
L’idée reçue

« kill sert uniquement à tuer immédiatement. »

kill envoie un signal. TERM demande une sortie propre, STOP suspend, CONT reprend et KILL ne laisse aucun nettoyage possible.

01Envoie un signal observable

./module3-processes-software-lab.sh start
./module3-processes-software-lab.sh signal USR1
sleep 1
./module3-processes-software-lab.sh status

Le processus intercepte USR1 et écrit un événement. Un signal peut donc déclencher un comportement applicatif sans terminer le processus.

02Suspends et reprends tout le groupe

./module3-processes-software-lab.sh signal STOP
./module3-processes-software-lab.sh status
./module3-processes-software-lab.sh signal CONT
sleep 1
./module3-processes-software-lab.sh status
Après STOP, la colonne STAT contient T. CONT reprend les processus sans les recréer.

03Choisis le bon signal

Signal
Intention
Précaution
TERM
arrêt propre
premier choix
HUP
déconnexion ou recharge selon l’application
vérifier la documentation
USR1
fonction applicative
sens défini par le programme
KILL
arrêt forcé par le noyau
dernier recours
kill -l
man 7 signal

04Utilise le job control du shell

sleep 300 &
job_pid=$!
job_spec='%+'
jobs -l
kill -STOP "$job_pid"
jobs -l
bg "$job_spec"
jobs -l
kill -TERM "$job_pid"

jobs, fg et bg concernent les jobs du shell courant. Un PID visible dans ps n’est pas forcément un job de ce shell.

05Observe la priorité

parent_pid=$(cat "/tmp/soria-linux-processes-$USER/run/parent.pid")
ps -o pid,ni,pri,stat,cmd -p "$parent_pid"
renice 5 -p "$parent_pid"
ps -o pid,ni,pri,stat,cmd -p "$parent_pid"
Un utilisateur peut généralement augmenter la valeur nice de ses processus, donc réduire leur priorité. Revenir vers une priorité plus forte peut nécessiter des privilèges.

06Termine proprement

./module3-processes-software-lab.sh stop
./module3-processes-software-lab.sh status
Challenge autonome

Écris une procédure d’arrêt

Construis une procédure qui identifie la portée, envoie TERM, attend cinq secondes, vérifie avec kill -0 et n’utilise KILL qu’en dernier recours. Explique comment éviter la réutilisation d’un ancien PID.

Ce que tu retiens

Un signal doit avoir une intention, une cible et une vérification. La priorité agit sur l’ordonnancement ; le job control agit sur les commandes du shell courant.

Ta progression

Chargement de l’état… Se connecter pour synchroniser.