Groupe de processus
Groupe de processus (en anglais process group) : ensemble de processus identifié par un numéro, le PGID, égal au PID du processus qui l'a créé. Le noyau peut envoyer un signal à tout le groupe d'un coup : c'est ce que fait le terminal pour Ctrl+C (SIGINT) ou Ctrl+Z (SIGTSTP), adressés au groupe au premier plan, et ce que fait kill -- -PGID (un PID négatif désigne un groupe).
Un shell interactif crée un groupe par tâche, ce qui permet de suspendre ou d'interrompre une commande et tous ses descendants. Un script, lui, ne gère pas les tâches : ses enfants restent dans son groupe, et un Ctrl+C les atteint tous en même temps que lui. timeout place la commande qu'il surveille dans un groupe à part pour pouvoir l'arrêter avec sa descendance ; setsid en crée un nouveau, dans une nouvelle session. systemd, lui, ne s'appuie pas sur les groupes mais sur le cgroup du service, que les processus ne peuvent pas quitter.
Dans les cours
- Bash pour l'automatisation, leçon 10 : Signaux, nettoyage et verrous
- Bash pour l'automatisation, leçon 11 : Processus, parallélisme et délais