Next: Acquisition d'un terminal de Up: La gestion des terminaux Previous: Test d'association d'un descripteur

Terminal de contrôle - Sessions - Groupes de processus

L'ensemble des processus existant dans le système à un moment donné est partitionné en sessions: tout processus appartient à une seule et unique session, on hérite de la session du processus père.

Un processus qui n'est pas leader de groupe peut créer une nouvelle session avec la primitive

	#include <unistd.h>
	pid_t setsid(void);

Lors du login, le processus shell créé est le leader d'une nouvelle session. Une tel session est caractérisée par le terminal de l'utilisateur (sur lequel il se loge) qui devient le terminal de contrôle de la session. Tous les processus de la session sont informés de la frappe des caractères de contrôle sur le terminal

intr, quit, susp.

Le terminal de contrôle est symbolisé par la référence "/dev/tty".

Lorsque le leader d'une session attachée à un terminal se termine tous les processus de la session reçoivent le signal SIGHUP et sont alors interrompus (on réalise sur fillmore une fin de session en tuant la fenêtre console, ce qui termine le processus shell leader ...) sauf si un handler a été positionné pour le signal SIGHUP.

On peut réaliser ceci en sh avec la commande nohup, ou la commande trap qui permettent d'ignorer le signal SIGHUP. Le terminal de contrôle et la session d'un tel processus résistant n'est pas normée dans POSIX.





Dominique REVUZ
Mon Feb 2 12:10:31 MET 1998
Une Bug Un mail Merci