Provided by: manpages-fr-dev_3.07.1-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(psid_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  fonctionnalités  pour  la  glibc (voir
   feature_test_macros(7)) :

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

       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  utilisées
       pour  récupérer  et fixer l’ID du groupe de processus (PGID : « Process
       Group ID ») d’un processus. La  façon  préférée,  celle  spécifiée  par
       POSIX.1  est :  getpgrp(void)  pour  récupérer  le  PGID  du  processus
       appelant et setpgid() pour fixer le PGID d’un processus.

       setpgid() fixe à 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  shell  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ètre, 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()
       est préférée pour cette tâche.

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

       L’appel setpgrp() spécifique à BSD qui prend des paramètres pid et pgid
       est équivalent à setpgid(pid, pgid).

       L’appel  getpgrp()  spécifique  à BSD qui prend un unique paramètre pid
       est équivalent à getpgid(pid).

VALEUR RENVOYÉE

       setpgid() et setpgrp() renvoient zéro s’ils réussissent,  ou  -1  s’ils
       échouent, auquel cas errno contient le code d’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’il réussit.  En  cas  d’erreur  -1  est  renvoyé  et  errno
       contient le code d’erreur.

ERREURS

       EACCES On  a  essayé  de  changer le groupe de processus d’un enfant du
              processus appelant, et ce fils  a  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  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  à  aucun processus. Pour
              setpgid() : pid n’est ni le processus appelant, ni l’un  de  ses
              enfants.

CONFORMITÉ

       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 provient de BSD 4.2 et ne sont pas spécifiées
       par POSIX.1.

NOTES

       Un processus fils créé par fork(2) hérite du PGID de son père. 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.

       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 essaie de lire avec  read(2)  sur  le  terminal,
       alors le groupe reçoit un signal SIGTSTP, 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 une session a un terminal de contrôle et le  drapeau  CLOCAL  de  ce
       terminal  n’est  pas  actif,  et  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 la fin du processus rend un groupe orphelin, et si l’un des  membres
       de  ce  groupe est arrêté, alors un signal SIGHUP suivi de SIGCONT sera
       envoyé à tous les processus du groupe.

VOIR AUSSI

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

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.07 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».