Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       setpgid, getpgid, setpgrp, getpgrp - Fixer/lire le groupe du processus

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 */
       pid_t getpgrp(pid_t pid);            /* version BSD */

       int setpgrp(void); /* version System V */
       int setpgrp(pid_t pid, pid_t pgid);  /* version BSD */

   Exigences  de  macros  de  test de fonctionnalites pour la glibc (consultez
   feature_test_macros(7)) :

       getpgid() :
           Depuis la glibc 2.12 :
               _POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 500 ||
               _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           Avant la glibc 2.12 :
               _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

       setpgrp() (POSIX.1) :
           _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

       setpgrp() (BSD), getpgrp() (BSD) :
           _BSD_SOURCE &&
               ! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE ||
                  _XOPEN_SOURCE_EXTENDED || _GNU_SOURCE || _SVID_SOURCE)

DESCRIPTION

       Toutes  ces  interfaces  sont  disponibles sous Linux et sont utilisees
       pour recuperer et fixer l'ID du groupe de processus (PGID :  << Process
       Group  ID >>)  d'un  processus.  La facon preferee, celle specifiee par
       POSIX.1  est :  getpgrp(void)  pour  recuperer  le  PGID  du  processus
       appelant et setpgid() pour fixer le PGID d'un processus.

       setpgid()  fixe  a  pgid le PGID du processus mentionne par pid. Si pid
       vaut zero, alors le PID du processus appelant est utilise. Si pgid vaut
       zero,  alors  le  PGID du processus indique par pid est positionne a la
       meme valeur que l'identifiant du processus. Si setpgid est utilise pour
       deplacer  un  processus d'un groupe dans un autre (comme cela peut etre
       fait par certains shell  pour  les  pipelines),  les  deux  groupes  de
       processus  doivent appartenir a la meme session (consultez setsid(2) et
       credentials(7)). Dans ce cas,  pgid  indique  un  groupe  de  processus
       existant a rejoindre et l'ID de session de ce groupe doit etre celui du
       processus concerne.

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

       getpgid()  renvoie  le  PGID  du processus indique par pid. Si pid vaut
       zero, le PID du processus appelant est utilise. La recuperation du PGID
       d'un  processus autre que l'appelant est rarement utilisee et getpgrp()
       est preferee pour cette tache.

       L'appel setpgrp() de System V, qui  ne  prend  pas  de  parametre,  est
       equivalent a setpgid(0, 0).

       L'appel setpgrp() specifique a BSD qui prend des parametres pid et pgid
       est equivalent a setpgid(pid, pgid).

       L'appel getpgrp() specifique a BSD qui prend un  unique  parametre  pid
       est equivalent a getpgid(pid).

VALEUR RENVOY'EE

       setpgid()  et  setpgrp()  renvoient zero s'ils reussissent, ou -1 s'ils
       echouent, auquel cas errno contient le code d'erreur.

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

       getpgid() et l'appel specifique a BSD getpgrp() renvoient le groupe  du
       processus  s'il  reussit.  En  cas  d'erreur  -1  est  renvoye et errno
       contient le code d'erreur.

ERREURS

       EACCES On a essaye de changer le groupe de  processus  d'un  enfant  du
              processus  appelant,  et  ce  fils  a deja effectue un execve(2)
              (setpgid(), setpgrp()).

       EINVAL pgid est inferieur a 0 (setpgid(), setpgrp()).

       EPERM  On a essaye de  deplacer  un  processus  dans  un  groupe  d'une
              session  differente,  ou  de  changer  le  groupe  d'un  fils 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  a  aucun  processus.  Pour
              setpgid() :  pid  n'est ni le processus appelant, ni l'un de ses
              enfants.

CONFORMIT'E

       setpgid() et la version de getpgrp() sans parametre  sont  conformes  a
       POSIX.1-2001.

       POSIX.1-2001  specifie  egalement  getpgid() et la version de setpgrp()
       qui ne prend pas de parametre. (POSIX.1-2008 marque cette specification
       de setpgrp() comme obsolete)

       La  version  de  getpgrp() avec un parametre et la version de setpgrp()
       qui prend deux parametres provient de BSD 4.2 et ne sont pas specifiees
       par POSIX.1.

NOTES

       Un  processus fils cree par fork(2) herite du PGID de son pere. Le PGID
       est conserve au travers d'un execve(2).

       Chaque groupe de processus est membre d'une session et chaque processus
       est membre de cette session.

       Une  session  peut avoir un terminal de controle. A tout moment, un (et
       un seul) des groupes de processus de cette session peut etre le  groupe
       de  premier  plan  du terminal ; les autre groupes de processus sont en
       arriere plan. Si un signal est genere depuis le terminal  (par  exemple
       une touche d'interruption pour generer un SIGINT), ce signal est envoye
       au groupe de processus au premier plan. Consultez  termios(3)  pour  la
       liste  des  caracteres  qui  generent  des  signaux.  Seul le groupe de
       processus au premier plan peut lire avec read(2) sur le  terminal ;  si
       un  groupe  de  processus  essaie de lire avec read(2) sur le terminal,
       alors le groupe recoit un signal SIGTSTP, qui le suspend. Les fonctions
       tcgetpgrp(3)   et   tcsetpgrp(3)   sont  utilisees  pour  recuperer  ou
       positionner le groupe de processus  au  premier  plan  du  terminal  de
       controle.

       Les  appels  setpgid()  et  getpgrp()  sont utilises par des programmes
       comme bash(1) pour creer des groupes de processus pour l'implementation
       du controle des travaux depuis l'interpreteur de commande.

       Si  une  session  a  un terminal de controle et le drapeau CLOCAL de ce
       terminal n'est pas actif, et  une  deconnexion  se  produit,  alors  le
       leader de la session recevra un signal SIGHUP. Si le leader se termine,
       le signal SIGHUP sera envoye a tous les processus du groupe au  premier
       plan sur le terminal de controle.

       Si la fin du processus rend un groupe de processus orphelin, et si l'un
       des membres de ce groupe est arrete, alors un signal SIGHUP suivi  d'un
       signal  SIGCONT sera envoye a 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 differente (voyez credentials(7)).

VOIR AUSSI

       getuid(2),   setsid(2),   tcgetpgrp(3),    tcsetpgrp(3),    termios(3),
       credentials(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).    Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.