Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

       setpgid, getpgid, setpgrp, getpgrp - Définir ou lire le groupe du processus

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <unistd.h>

       int setpgid(pid_t pid, pid_t pgid);
       pid_t getpgid(pid_t pid);

       pid_t getpgrp(void);                            /* Version POSIX.1 */
       [[obsolète]] pid_t getpgrp(pid_t pid);        /* Version BSD */

       int setpgrp(void);                              /* Version System V */
       [[obsolète]] int setpgrp(pid_t pid, pid_t pgid);  /* Version BSD */

   Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

       getpgid() :
           _XOPEN_SOURCE >= 500
               || /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE >= 200809L

       setpgrp() (POSIX.1) :
           _XOPEN_SOURCE >= 500
       "        || /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE
       "        || /* glibc <= 2.19 : */ _SVID_SOURCE

       setpgrp() (BSD), getpgrp() (BSD) :
           [Ils ne sont disponibles qu'avant la glibc 2.19]
           _BSD_SOURCE &&
               ! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE
                   || _GNU_SOURCE || _SVID_SOURCE)

DESCRIPTION

       Toutes  ces  interfaces  sont  disponibles  sous  Linux  et  sont  utilisées  pour  récupérer  et définir
       l'identifiant du groupe de processus (PGID : « Process Group ID ») d'un  processus.  La  façon  préférée,
       spécifiée  par POSIX.1 est : getpgrp(void) pour récupérer le PGID du processus appelant et setpgid() pour
       définir le PGID d'un processus.

       setpgid() définit à pgid le PGID du processus mentionné par pid. Si  pid  vaut  zéro,  alors  le  PID  du
       processus  appelant  est  utilisé.  Si  pgid  vaut  zéro,  alors le PGID du processus indiqué par pid est
       positionné à la même valeur que l'identifiant du processus. Si  setpgid  est  utilisé  pour  déplacer  un
       processus  d'un  groupe  dans un autre (comme cela peut être fait par certains interpréteurs de commandes
       pour les pipelines), les deux groupes de processus  doivent  appartenir  à  la  même  session  (consultez
       setsid(2)  et  credentials(7)).  Dans ce cas, pgid indique un groupe de processus existant à rejoindre et
       l'ID de session de ce groupe doit être celui du processus concerné.

       La version POSIX.1 de getpgrp(), qui ne prend pas de paramètres, renvoie le PGID du processus appelant.

       getpgid() renvoie le PGID du processus indiqué par pid. Si pid vaut zéro, le PID  du  processus  appelant
       est  utilisé.  La  récupération  du  PGID  d'un  processus  autre que l'appelant est rarement utilisée et
       getpgrp() de POSIX.1 est préférée pour cette tâche.

       L'appel setpgrp() de System V, qui ne prend pas de paramètres, est équivalent à setpgid(0, 0).

       L'appel setpgrp() spécifique à BSD qui prend les paramètres pid et pgid est une fonction  d'encapsulation
       de

           setpgid(pid, pgid)

       A  partir  de  la glibc 2.19, la fonction spécifique à BSD setpgrp() ne figure plus dans <unistd.h> ; les
       appels à cette fonction doivent être remplacés par des appels à setpgid() tel qu'indiqué précédemment.

       L'appel getpgrp() spécifique à BSD qui prend un unique paramètre pid est une fonction d'encapsulation de

           getpgid(pid)

       A partir de la glibc 2.19, la fonction spécifique à BSD getpgrp() ne figure plus  dans  <unistd.h> ;  les
       appels  à  cette  fonction  doivent  être remplacés par des appels à la fonction POSIX.1 getpgrp() qui ne
       prend pas d'argument (si l'appel a pour objet de récupérer le PGID du processus  appelant),  ou  par  des
       appels à getpgid() tel que décrit précédemment.

VALEUR RENVOYÉE

       setpgid()  et  setpgrp()  renvoient  zéro  s'ils  réussissent, ou -1 s'ils échouent, auquel cas errno est
       positionné pour indiquer l'erreur.

       L'appel getpgrp() de POSIX.1 renvoie le PGID du processus appelant.

       getpgid() et l'appel spécifique à BSD getpgrp() renvoient le groupe du processus  s'ils  réussissent.  En
       cas d'erreur, -1 est renvoyé et errno est positionné pour indiquer l'erreur.

ERREURS

       EACCES On  a  essayé  de  changer  l'identifiant  du  groupe  de  processus d'un des enfants du processus
              appelant, et l'enfant avait déjà effectué un execve(2) (setpgid(), setpgrp()).

       EINVAL pgid est inférieur à 0 (setpgid(), setpgrp()).

       EPERM  On a essayé de déplacer un processus dans un groupe d'une session différente,  ou  de  changer  le
              groupe d'un des enfants du processus appelant qui se trouve dans une autre session, ou de modifier
              le groupe d'un leader de session (setpgid(), setpgrp()).

       ESRCH  Pour getpgid() : pid ne correspond à aucun processus. Pour setpgid() : pid n'est ni  le  processus
              appelant, ni l'un de ses enfants.

STANDARDS

       setpgid() et la version de getpgrp() sans paramètre sont conformes à POSIX.1-2001.

       POSIX.1-2001  spécifie  également  getpgid()  et  la  version de setpgrp() qui ne prend pas de paramètre.
       (POSIX.1-2008 marque cette spécification de setpgrp() comme obsolète)

       La version de getpgrp() avec  un  paramètre  et  la  version  de  setpgrp()  qui  prend  deux  paramètres
       proviennent de 4.2BSD et ne sont pas spécifiées par POSIX.1.

NOTES

       Un  processus  enfant créé par fork(2) hérite du PGID de son parent. Le PGID est conservé au travers d'un
       execve(2).

       Chaque groupe de processus est membre d'une session et chaque processus est membre de cette session (voir
       credentials(7)).

       Une  session  peut avoir un terminal de contrôle. À tout moment, un (et un seul) des groupes de processus
       de cette session peut être le groupe de premier plan du terminal ; les autre groupes de processus sont en
       arrière-plan.  Si  un  signal  est  généré depuis le terminal (par exemple une touche d'interruption pour
       générer un SIGINT), ce signal est envoyé au groupe de processus au  premier  plan.  Consultez  termios(3)
       pour  la  liste des caractères qui génèrent des signaux. Seul le groupe de processus au premier plan peut
       lire avec read(2) sur le terminal ; si un groupe de processus en arrière-plan essaie de lire avec read(2)
       sur  le terminal, alors le groupe reçoit un signal SIGTTIN, qui le suspend. Les fonctions tcgetpgrp(3) et
       tcsetpgrp(3) sont utilisées pour récupérer ou positionner le groupe  de  processus  au  premier  plan  du
       terminal de contrôle.

       Les  appels  setpgid() et getpgrp() sont utilisés par des programmes comme bash(1) pour créer des groupes
       de processus pour l'implémentation du contrôle des travaux depuis l'interpréteur de commande.

       Si la fin du processus rend un groupe de processus orphelin, et si l'un des  membres  de  ce  groupe  est
       arrêté,  alors  un  signal  SIGHUP  suivi  d'un signal SIGCONT sera envoyé à tous les processus du groupe
       orphelin. Un groupe de processus est orphelin si le parent de chaque processus du groupe est soit  membre
       de ce groupe ou soit membre d'un groupe de processus dans une session différente (voyez credentials(7)).

VOIR AUSSI

       getuid(2), setsid(2), tcgetpgrp(3), tcsetpgrp(3), termios(3), credentials(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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 à
       ⟨debian-l10n-french@lists.debian.org⟩.