jammy (2) setpriority.2.gz

Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       getpriority, setpriority - Lire et écrire la priorité d'ordonnancement du processus

SYNOPSIS

       #include <sys/time.h>
       #include <sys/resource.h>

       int getpriority(int which, id_t who);
       int setpriority(int which, id_t who, int prio);

DESCRIPTION

       La priorité d'ordonnancement du processus, du groupe de processus ou de l'utilisateur, comme précisé dans
       which et who est lue avec l'appel getpriority() et définie  avec  l'appel  setpriority().  L'attribut  du
       processus  concerné par ces appels système est le même que celui géré par nice(2) (appelé aussi la valeur
       « de politesse »).

       La valeur de which doit être PRIO_PROCESS, PRIO_PGRP ou PRIO_USER, et who est interprété en  fonction  de
       which  (un  ID  de  processus  pour  PRIO_PROCESS,  un  ID de groupe de processus pour PRIO_PGRP et un ID
       d'utilisateur pour PRIO_USER). Une valeur nulle pour who indique (respectivement) le processus  appelant,
       le groupe de processus du processus appelant ou l'UID réel du processus appelant.

       Le  paramètre  prio est une valeur sur l'intervalle -20 à 19 (mais voir les NOTES ci-dessous), où -20 est
       la priorité la plus élevée et 19 celle la plus basse. Les valeurs pour définir une priorité en dehors  de
       cet  intervalle  sont  silencieusement  ramenées  dans  l'intervalle.  La priorité par défaut est 0 ; les
       valeurs les plus basses donnent au processus une priorité d'ordonnancement plus élevée.

       La fonction getpriority() renvoie la plus haute priorité (la plus basse valeur numérique) dont  bénéficie
       l'un  des processus indiqué. La fonction setpriority() positionne la priorité des processus indiqués à la
       valeur fournie.

       Traditionnellement, seul un processus privilégié pouvait diminuer la valeur de  courtoisie  (c'est-à-dire
       augmenter  la priorité). Mais depuis Linux 2.6.12, un processus non privilégié peut diminuer la valeur de
       courtoisie d'un processus cible ayant une limite souple RLIMIT_NICE convenable ; voir  getrlimit(2)  pour
       des détails.

VALEUR RENVOYÉE

       S'il  réussit,  setpriority() renvoie la valeur de courtoisie du thread appelant, qui peut être un nombre
       négatif. En cas d'erreur, il renvoie -1 et positionne errno pour indiquer la cause de l'erreur.

       Puisqu'un appel à getpriority() peut tout à fait renvoyer la valeur  -1,  il  faut  effacer  la  variable
       externe errno avant l'appel afin de vérifier si -1 indique une erreur ou une priorité légitime.

       S'il  réussit,  setpriority()  renvoie  zéro.  En  cas  d'erreur,  il renvoie -1 et positionne errno pour
       indiquer la cause de l'erreur.

ERREURS

       EINVAL which n'était ni PRIO_PROCESS, ni PRIO_PGRP, ni PRIO_USER.

       ESRCH  Aucun processus ne correspond aux valeurs de which et who indiquées.

       De plus setpriority() peut échouer pour les erreurs suivantes :

       EACCES L'appelant a tenté de définir une valeur de politesse plus basse  (c'est-à-dire  une  priorité  de
              processus  plus  élevée)  mais  il  n'a  pas les droits requis (sur Linux : il n'a pas la capacité
              CAP_SYS_NICE).

       EPERM  Un processus correspond bien aux valeurs indiquées, mais ni  l'UID  réel,  ni  l'UID  effectif  de
              l'appelant  ne  correspondent  à  l'UID  effectif  de  ce  processus,  et  (sur les systèmes Linux
              l'appelant n'a pas la capacité CAP_SYS_NICE). Voir les NOTES ci‐dessous.

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD (ces  interfaces  sont  apparues  pour  la  première  fois  dans
       4.2BSD).

NOTES

       Pour plus de détails sur la valeur de courtoisie, voir sched(7).

       Remarque : l'ajout de la fonctionnalité « autogroup » à Linux 2.6.38 signifie que la valeur de courtoisie
       n'a plus son effet traditionnel dans de nombreuses circonstances. Pour des détails, voir sched(7).

       Un enfant créé avec fork(2) hérite de la valeur de politesse de son parent. La valeur  de  politesse  est
       préservée au travers d'un execve(2).

       Les  détails  concernant  la  condition  d'erreur  EPERM  dépendent  du système. La description ci‐dessus
       concerne ce que dit POSIX.1-2001, et qui semble être suivi par tous les systèmes de  type  System V.  Les
       noyaux Linux antérieurs à 2.6.12 demandent que l'UID réel ou effectif de l'appelant correspondent à l'UID
       réel du processus who (et non pas à son UID effectif). Linux  2.6.12  et  suivants  demandent  que  l'UID
       effectif  de  l'appelant corresponde à l'UID réel ou effectif du processus who. Tous les systèmes de type
       BSD (SunOS 4.1.3, Ultrix 4.2, BSD 4.3, FreeBSD 4.3, OpenBSD-2.5, ...) se comportent de  la  même  manière
       que Linux 2.6.12 et les suivants.

       L'inclusion   de   <sys/time.h>   n'est  plus  obligatoire,  mais  améliore  la  portabilité.  (En  fait,
       <sys/resource.h> définit la structure rusage qui contient des champs de type struct timeval, défini  dans
       <sys/time.h>.)

   différences entre bibliothèque C et noyau
       Dans  le noyau, les valeurs de politesse sont représentées dans l'intervalle [40,1] (les nombres négatifs
       sont des codes d'erreurs), et ce sont ces valeurs qui sont utilisées par les appels système setpriority()
       et  getpriority().  Les  routines  de  la  bibliothèque  glibc  se  chargent  des  conversions  entre les
       représentations dans le noyau et dans l'espace utilisateur grâce à  la  formule  unice = 20 - knice.  (De
       cette façon, l'intervalle [40,1] du noyau correspond à l'intervalle [-20,19] dans l'espace utilisateur).

BOGUES

       Selon la norme POSIX, la valeur de politesse est définie à l'échelle du processus. Cependant, les threads
       POSIX sont actuellement implémentés dans Linux/NPTL de telle sorte que la  valeur  de  politesse  est  un
       attribut  du  thread :  différents  threads  d'un  même  processus peuvent avoir des valeurs de politesse
       différentes. Les applications portables doivent donc éviter de s'appuyer sur cette  propriété  de  Linux,
       qui devrait, à l'avenir, être mise en conformité avec les normes.

VOIR AUSSI

       nice(1), renice(1), fork(2), capabilities(7), sched(7)

       Documentation/scheduler/sched-nice-design.txt dans les sources du noyau (depuis Linux 2.6.23)

COLOPHON

       Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
       instructions pour signaler des anomalies et la dernière version de cette page  peuvent  être  trouvées  à
       l'adresse https://www.kernel.org/doc/man-pages/.

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 ⟨⟩.