setsid
Table des matières
Retour à l'index
NOM
setsid - Créer une session et définir l'identifiant du groupe de processus
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#include <unistd.h>
pid_t setsid(void);
DESCRIPTION
setsid() crée une nouvelle session si le processus appelant n'est pas un
leader de groupe. Le processus appelant devient le leader du nouveau groupe
(c'est-à-dire que son ID de groupe est le même que son ID de processus). Le
processus appelant devient également le leader du groupe du processus du
nouveau groupe de la nouvelle session (à savoir que son ID de groupe est le
même que son ID de processus).
Le processus appelant sera le seul du nouveau groupe et de la nouvelle
session.
Au début, la nouvelle session n'a pas de terminal de contrôle. Pour des
détails sur la manière dont une session obtient un terminal de contrôle,
consultez credentials(7).
VALEUR RENVOYÉE
En cas de succès, l'identifiant de la (nouvelle) session du processus
appelant est renvoyé. En cas d'échec, (pid_t) -1 est renvoyé, et
errno contient le code de l'erreur.
ERREURS
- EPERM
-
L'identifiant du groupe de processus d'un processus quelconque est égal au
PID du processus appelant. En particulier setsid() échoue si le processus
appelant est déjà leader d'un groupe.
STANDARDS
POSIX.1-2008.
HISTORIQUE
POSIX.1-2001, SVr4.
NOTES
Un enfant créé par fork(2) hérite de l'identifiant de session de son
parent. L'identifiant de session est conservé au travers d'un execve(2).
Un leader de groupe est un processus dont l'ID de groupe est le même que son
PID. Empêcher un leader de groupe d'appeler setsid() supprime la
possibilité qu'un leader n'aille lui-même dans une nouvelle session alors
que d'autres processus du même groupe restent dans celle d'origine ; un tel
scénario casserait la hiérarchie stricte à deux niveaux de sessions et de
groupes de processus. Pour vous assurer que setsid() va réussir, appelez
fork(2) avec un parent _exit(2), tandis qu'un enfant (qui, par
définition, ne peut pas être un leader de groupe) appelle setsid().
Si une session a un terminal de contrôle dont le drapeau CLOCAL n'est pas
positionné et qu'une déconnexion se produit, alors le leader de la session
recevra un signal SIGHUP. Si le leader se termine, le signal SIGHUP
sera envoyé à tous les processus du groupe au premier plan sur le terminal
de contrôle.
Si un processus leader de session se termine, un signal SIGHUP est envoyé
à tous les processus du groupe au premier plan sur le terminal de contrôle.
VOIR AUSSI
setsid(1), getsid(2), setpgid(2), setpgrp(2), tcgetsid(3),
credentials(7), sched(7)
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>,
Cédric Boutillier <cedric.boutillier@gmail.com>,
Frédéric Hantrais <fhantrais@gmail.com>
et
Jean-Philippe MENGUAL <jpmengual@debian.org>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- STANDARDS
-
- HISTORIQUE
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:05 GMT, September 19, 2025