Man page - prlimit(2)

Packages contains this manual

Available languages:

en fr pl ja ru

Manual

getrlimit

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
prlimit()
VALEUR RENVOYÉE
ERREURS
ATTRIBUTS
STANDARDS
HISTORIQUE
NOTES
DiffĂ©rences entre la bibliothĂšque C et l’ABI du noyau
BOGUES
Représentation des limites de ressources de grande taille sur lesplate-formes 32 bits
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

getrlimit, setrlimit, prlimit - Lire et écrire les limites et utilisations des ressources

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <sys/resource.h>

int getrlimit(int resource , struct rlimit * rlim );
int setrlimit(int
resource , const struct rlimit * rlim );

int prlimit(pid_t pid , int resource ,
const struct rlimit *_Nullable
new_limit ,
struct rlimit *_Nullable
old_limit );

struct rlimit {
rlim_t rlim_cur;
/* limite souple */
rlim_t rlim_max;
/* limite stricte (plafond de rlim_cur) */
};

typedef /* ... */ rlim_t; /* Type entier non signé */

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

prlimit () :
_GNU_SOURCE

DESCRIPTION

Les appels systÚme getrlimit () et setrlimit () lisent ou écrivent les limites des ressources systÚme. Chaque ressource a une limite souple et une limite stricte définies par la structure rlimit .

La limite souple est la valeur que le noyau prend en compte pour la ressource correspondante. La limite stricte agit comme un plafond pour la limite souple : un processus non privilĂ©giĂ© peut seulement modifier sa limite souple dans l’intervalle entre zĂ©ro et la limite stricte, et diminuer (de maniĂšre irrĂ©versible) sa limite stricte. Un processus privilĂ©giĂ© (sous Linux : un processus ayant la capacitĂ© CAP_SYS_RESOURCE dans l’espace de noms initial de l’utilisateur) peut modifier ses deux limites Ă  sa guise.

La valeur RLIM_INFINITY indique une limite infinie pour la ressource (aussi bien pour getrlimit () que pour setrlimit ()).

Le paramĂštre resource doit ĂȘtre l’un des Ă©lĂ©ments suivants :
RLIMIT_AS

Taille maximale de la mĂ©moire virtuelle du processus (espace d’adressage). Cette limite est exprimĂ©e en octets et est arrondie Ă  la taille infĂ©rieure de la page systĂšme. Cette limite affecte les appels Ă  brk (2), mmap (2) et mremap (2), qui Ă©chouent avec l’erreur ENOMEM en cas de dĂ©passement de cette limite. De mĂȘme, l’extension automatique de la pile Ă©chouera (et gĂ©nĂ©rera un SIGSEGV qui tuera le processus si aucune pile alternative n’a Ă©tĂ© dĂ©finie par un appel Ă  sigaltstack (2)). Comme cette valeur est de type long , sur les machines oĂč le type long est sur 32 bits, soit cette limite est au plus 2 GiB, soit cette ressource est illimitĂ©e.

RLIMIT_CORE

Taille maximale d’un fichier core (consulter core (5)) qu’un processus peut gĂ©nĂ©rer. Lorsqu’elle vaut zĂ©ro, aucun fichier d’image noyau (Ndt : core dump) n’est créé. Lorsqu’elle ne vaut pas zĂ©ro, les fichiers d’image noyau plus grands sont tronquĂ©s Ă  cette taille.

RLIMIT_CPU

Limite de temps CPU en secondes consommable par le processus. Lorsqu’un processus atteint cette limite souple, il reçoit le signal SIGXCPU . L’action par dĂ©faut pour ce signal est la terminaison du processus. Mais le signal peut ĂȘtre capturĂ© et le gestionnaire peut rendre le contrĂŽle au programme principal. Si le processus continue Ă  consommer du temps CPU, il recevra SIGXCPU toutes les secondes jusqu’à atteindre la limite stricte, oĂč il recevra SIGKILL . (Ce dernier point dĂ©crit le comportement de Linux. Les implĂ©mentations varient sur la façon de traiter le processus qui continue Ă  consommer du temps CPU aprĂšs dĂ©passement de sa limite souple. Les applications portables qui doivent capturer ce signal devraient prĂ©voir une terminaison propre dĂšs la premiĂšre rĂ©ception de SIGXCPU .)

RLIMIT_DATA

Taille maximale du segment de donnĂ©es d’un processus (donnĂ©es initialisĂ©es, non initialisĂ©es, et tas). Cette limite est indiquĂ©e en octets et arrondie Ă  la taille infĂ©rieure de la page systĂšme. Cette limite affecte les appels brk (2), sbrk (2) et (depuis Linux 4.7) mmap (2)) qui Ă©chouent avec l’erreur ENOMEM si la limite souple est dĂ©passĂ©e.

RLIMIT_FSIZE

Taille maximale, en octets, d’un fichier que le processus peut crĂ©er. Les tentatives d’extension d’un fichier au-delĂ  de cette limite aboutissent Ă  un signal SIGXFSZ . Par dĂ©faut ce signal termine le processus, mais il peut ĂȘtre capturĂ©, et dans ce cas l’appel systĂšme concernĂ© (par exemple write (2), truncate (2)) Ă©choue avec l’erreur EFBIG .

RLIMIT_LOCKS (de Linux 2.4.0 Ă  Linux 2.4.24)

Limite pour le nombre combiné de verrous flock (2) et fcntl (2) que le processus peut établir.

RLIMIT_MEMLOCK

Le nombre maximal d’octets de mĂ©moire que le processus peut verrouiller en RAM. En pratique cette limite est arrondie vers le bas au multiple de la taille de page le plus proche. Cette limite affecte mlock (2) et mlockall (2) ainsi que l’opĂ©ration MAP_LOCKED de mmap (2). Depuis Linux 2.6.9, elle affecte aussi l’opĂ©ration SHM_LOCK de shmctl (2), oĂč elle limite le nombre total d’octets dans des segments de mĂ©moire partagĂ©e (consultez shmget (2)) que l’UID rĂ©el du processus appelant peut verrouiller. Les verrous SHM_LOCK de shmctl (2) sont comptĂ©s sĂ©parĂ©ment des verrous de mĂ©moire par processus Ă©tablis par MAP_LOCKED de mlock (2), mlockall (2) et mmap (2) ; un processus peut verrouiller des octets jusqu’à cette limite dans ces deux catĂ©gories.

Avant Linux 2.6.9, cette limite contrĂŽlait la quantitĂ© de mĂ©moire qui pouvait ĂȘtre verrouillĂ©e par un processus privilĂ©giĂ©. Depuis Linux 2.6.9, il n’existe plus de limite de quantitĂ© de mĂ©moire verrouillable par un processus privilĂ©giĂ©, cette limite gĂšre donc plutĂŽt la quantitĂ© de mĂ©moire qu’un processus non privilĂ©giĂ© peut verrouiller.

RLIMIT_MSGQUEUE (depuis Linux 2.6.8)

Indique la limite du nombre d’octets pouvant ĂȘtre allouĂ©s pour les files de messages POSIX pour l’UID rĂ©el du processus appelant. Cette limite est appliquĂ©e pour mq_open (3). Chaque file de message créée par l’utilisateur se calcule (jusqu’à sa destruction) par rapport Ă  la limite via la formule suivante :

Depuis Linux 3.5 :

bytes = attr.mq_maxmsg * sizeof(struct msg_msg) +
MIN(attr.mq_maxmsg, MQ_PRIO_MAX) *
sizeof(struct posix_msg_tree_node)+
/* Pour le dépassement */
attr.mq_maxmsg * attr.mq_msgsize;
/* Pour les données du message */

Linux 3.4 et antérieurs :

bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) +
/* Pour le dépassement */
attr.mq_maxmsg * attr.mq_msgsize;
/* Pour les données du message */

oĂč attr est la structure mq_attr passĂ©e comme quatriĂšme argument Ă  mq_open (3), et msg_msg et posix_msg_tree_node sont les structures internes du noyau.

Le terme de « dĂ©passement » de la formule reprĂ©sente les octets de dĂ©passement nĂ©cessaires Ă  l’implĂ©mentation. Ce dĂ©passement assure que l’utilisateur ne peut pas crĂ©er un nombre illimitĂ© de messages vides (ces messages consomment tout de mĂȘme de la mĂ©moire systĂšme).

RLIMIT_NICE (depuis Linux 2.6.12, consultez la section BOGUES
ci-dessous)

Indique un plafond pour la valeur de politesse du processus pouvant ĂȘtre dĂ©finie par setpriority (2) ou nice (2). Le plafond rĂ©el pour la valeur de politesse est calculĂ© par la formule 20 - rlim_cur . La plage utile pour cette limite est ainsi de 1 (pour une valeur de politesse de 19) Ă  40 (pour une valeur de politesse de -20). Cette bizarrerie est nĂ©cessaire car des nombres nĂ©gatifs ne peuvent pas ĂȘtre utilisĂ©s comme limite de ressource, en raison de leur signification souvent particuliĂšre. Par exemple, RLIM_INFINITY est souvent la mĂȘme chose que -1 . Pour plus de dĂ©tails sur la valeur de politesse, consultez sched (7).

RLIMIT_NOFILE

Valeur supĂ©rieure de 1 au nombre maximal de descripteurs de fichier que peut ouvrir ce processus. Les tentatives d’ouverture ( open (2), pipe (2), dup (2), etc) dĂ©passant cette limite renverront l’erreur EMFILE (historiquement, cette limite Ă©tait appelĂ©e RLIMIT_OFILE sur les BSD).

Depuis Linux 4.5, cette limite dĂ©finit Ă©galement le nombre maximal de descripteurs de fichier qu’un processus non privilĂ©giĂ© (sans la capacitĂ© CAP_SYS_RESOURCE ) peut dĂ©tenir « en vol » sur les autres processus, en les passant Ă  travers des sockets du domaine UNIX. Cette limite s’applique Ă  l’appel systĂšme sendmsg (2). Pour plus de dĂ©tails, voir unix (7).

RLIMIT_NPROC

Limite du nombre de processus Ă©tendus (ou, plus prĂ©cisĂ©ment, sur Linux, de threads) pour l’identifiant de l’utilisateur rĂ©el du processus appelant. Tant que le nombre en cours de processus appartenant Ă  l’identifiant de l’utilisateur rĂ©el du processus est supĂ©rieur ou Ă©gal Ă  cette limite, fork (2) Ă©choue avec l’erreur EAGAIN .

La limite RLIMIT_NPROC n’est pas gĂ©rĂ©e pour les processus qui ont la capacitĂ© CAP_SYS_ADMIN ou CAP_SYS_RESOURCE , ou bien qui fonctionnent avec l’identifiant rĂ©el de l’utilisateur 0 ..

RLIMIT_RSS

Indique la limite (en octets) pour la taille de l’ensemble rĂ©sident du processus (le nombre de pages de mĂ©moire virtuelle en RAM). Cette limite n’a d’effet que sous Linux 2.4.x oĂč x < 30, et n’affecte que les appels madvise (2) indiquant MADV_WILLNEED .

RLIMIT_RTPRIO (depuis Linux 2.6.12, mais consultez BOGUES)

Indique un plafond pour la prioritĂ© temps-rĂ©el pouvant ĂȘtre appliquĂ©e au processus par sched_setscheduler (2) et sched_setparam (2).

Pour plus de dĂ©tails sur les rĂšgles d’ordonnancement en temps rĂ©el, voir sched (7)

RLIMIT_RTTIME (depuis Linux 2.6.25)

Indique une limite de la quantitĂ© de temps (en microsecondes) CPU qu’un processus ordonnancĂ© par une politique d’ordonnancement temps rĂ©el peut consommer sans provoquer un appel systĂšme bloquant. Pour les besoins de cette limite, le dĂ©compte du temps CPU qu’il a consommĂ© est remis Ă  zĂ©ro Ă  chaque fois qu’un processus exĂ©cute un appel systĂšme bloquant. Le dĂ©compte du temps CPU n’est pas remis Ă  zĂ©ro si le processus continue d’essayer d’utiliser le CPU mais est prĂ©emptĂ©, ou si sa tranche de temps expire, ou s’il appelle sched_yield (2).

Quand la limite douce est atteinte, un signal SIGXCPU est envoyĂ© au processus. Si le processus attrape ou ignore ce signal et continue Ă  consommer du temps CPU, alors un signal SIGXCPU sera gĂ©nĂ©rĂ© une fois par seconde jusqu’à ce que la limite stricte soit atteinte, ce qui provoque l’envoi d’un signal SIGKILL au processus.

L’objectif de cette limite est d’empĂȘcher un processus temps rĂ©el fou de bloquer le systĂšme.

Pour plus de dĂ©tails sur les rĂšgles d’ordonnancement en temps rĂ©el, voir sched (7)

RLIMIT_SIGPENDING (depuis Linux 2.6.8)

SpĂ©cifie la limite du nombre de signaux pouvant ĂȘtre mis en attente pour l’identifiant utilisateur rĂ©el du processus appelant. La vĂ©rification de cette limite prend en compte Ă  la fois les signaux classiques et les signaux temps-rĂ©el. Cependant, cette limite n’est appliquĂ©e que pour sigqueue (3) ; il est toujours possible d’utiliser kill (2) pour mettre en attente une instance de tout signal qui n’est pas dĂ©jĂ  en attente pour le processus.

RLIMIT_STACK

La taille maximale de la pile du processus, en octets. Une fois cette limite atteinte, un signal SIGSEGV est déclenché. Pour gérer ce signal, le processus doit utiliser une pile spécifique pour signaux ( sigaltstack (2)).

Depuis Linux 2.6.23, cette limite dĂ©termine Ă©galement la quantitĂ© d’espace utilisĂ© pour les paramĂštres et les variables d’environnement du processus ; consultez execve (2) pour plus de dĂ©tails.

prlimit()

L’appel systĂšme prlimit () spĂ©cifique Ă  Linux combine et Ă©tend les fonctionnalitĂ©s de setrlimit () et getrlimit (). Il peut ĂȘtre utilisĂ© pour affecter ou rĂ©cupĂ©rer les limites de ressources de tout processus.

Le paramĂštre resource a le mĂȘme sens que dans setrlimit () et getrlimit ().

Si le paramÚtre new_limit ne vaut pas NULL, alors la structure rlimit vers laquelle il pointe est utilisée pour affecter de nouvelles valeurs aux limites souples et strictes pour resource . Si le paramÚtres old_limit ne vaut pas NULL, alors un appel à prlimit () qui réussit place les limites antérieures souples et strictes pour resource dans la structure rlimit pointée par old_limit .

L’argument pid spĂ©cifie l’identifiant du processus sur lequel l’appel agit. Si pid vaut 0 , alors l’appel s’applique au processus appelant. Pour positionner ou interroger les ressources d’un processus autre que lui-mĂȘme, l’appelant doit avoir la capacitĂ© CAP_SYS_RESOURCE dans l’espace de noms utilisateur du processus dont les limites de ressources vont ĂȘtre modifiĂ©es ou bien les identifiants d’utilisateur rĂ©el, effectif et le set-UID sauvĂ© du processus cible doivent correspondre Ă  l’identifiant d’utilisateur rĂ©el de l’appelant et les identifiants de groupe rĂ©el et effectif et le set-GID sauvĂ© du processus cible doivent correspondre Ă  l’identifiant de groupe rĂ©el de l’appelant.

VALEUR RENVOYÉE

Ces appels systĂšme renvoient 0 en cas de succĂšs ou -1 en cas d’échec, auquel cas errno est positionnĂ© pour indiquer l’erreur.

ERREURS

EFAULT

L’un des arguments pointe en dehors de l’espace d’adressage accessible.

EINVAL

La valeur spĂ©cifiĂ©e dans resource n’est pas autorisĂ©e ; ou, pour setrlimit () ou prlimit (), rlim->rlim_cur est plus grand que rlim->rlim_max .

EPERM

Un processus non privilĂ©giĂ© a essayĂ© d’augmenter la limite stricte ; la capacitĂ© CAP_SYS_RESOURCE est nĂ©cessaire pour faire cela.

EPERM

L’appelant a essayĂ© d’augmenter la limite stricte RLIMIT_NOFILE au-delĂ  de celle maximale dĂ©finie dans /proc/sys/fs/nr_open (voir proc (5))

EPERM

( prlimit ()) Le processus appelant n’avait pas les droits pour fixer des limites au processus indiquĂ© par pid .

ESRCH

Impossible de trouver un processus dont l’identifiant est indiquĂ© par pid .

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3857778-1.png

STANDARDS

getrlimit ()
setrlimit
()

POSIX.1-2008.

prlimit ()

Linux.

RLIMIT_MEMLOCK et RLIMIT_NPROC proviennent de BSD et ne sont pas dĂ©finis dans POSIX.1 ; ils sont prĂ©sents dans les BSD et Linux, mais dans peu d’autres implĂ©mentations. RLIMIT_RSS vient de BSD et n’est pas dĂ©fini dans POSIX.1 ; cependant, il est prĂ©sent sur la plupart des implĂ©mentations. RLIMIT_MSGQUEUE , RLIMIT_NICE , RLIMIT_RTPRIO , RLIMIT_RTTIME et RLIMIT_SIGPENDING sont spĂ©cifiques Ă  Linux.

HISTORIQUE

getrlimit ()
setrlimit
()

POSIX.1-2001, SVr4, 4.3BSD.

prlimit ()

Linux 2.6.36, glibc 2.13.

NOTES

Un processus enfant créé avec fork (2) hérite des limites de ressource de son parent. Les limites de ressource sont préservées à travers un execve (2).

Les limites de ressource sont des attributs par processus partagĂ©s par tous les threads d’un processus.

Descendre la limite souple d’une ressource en dessous de l’actuelle utilisation par le processus de cette ressource fonctionne (mais cela empĂȘchera le processus d’augmenter ultĂ©rieurement sa consommation de cette ressource).

On peut dĂ©finir les limites de ressource de l’interprĂ©teur de commandes en utilisant la commande interne ulimit ( limit dans csh (1)). Les limites de ressource de l’interprĂ©teur de commandes sont hĂ©ritĂ©es par les processus qu’il crĂ©e pour exĂ©cuter les commandes.

À partir de Linux 2.6.24, les limites de ressource de n’importe quel processus peuvent ĂȘtre examinĂ©es en consultant /proc/ pid /limits ; consultez proc (5).

Les systĂšmes anciens fournissent une fonction vlimit () qui remplit le mĂȘme rĂŽle que setrlimit (). Pour des raisons de compatibilitĂ© ascendante, la glibc fournit aussi une fonction vlimit (), mais toutes les nouvelles applications devraient utiliser setrlimit ().

DiffĂ©rences entre la bibliothĂšque C et l’ABI du noyau

A partir de la glibc 2.13, les fonctions d’enveloppe getrlimit () et setrlimit () de la glibc n’appellent plus les appels systĂšmes correspondant, mais utilisent prlimit (), pour les raisons indiquĂ©es dans BUGS.

Le nom de la fonction enveloppe dans la glibc est prlimit () ; l’appel systùme sous-jacent est prlimit64 ().

BOGUES

Dans les noyaux Linux plus anciens, les signaux SIGXCPU et SIGKILL envoyĂ©s lorsqu’un processus dĂ©passait les limites souples et strictes pour RLIMIT_CPU Ă©taient envoyĂ©s une seconde (CPU) plus tard qu’ils n’auraient dĂ» l’ĂȘtre. Cela a Ă©tĂ© corrigĂ© dans Linux 2.6.8.

Dans les noyaux Linux de la sĂ©rie 2.6 antĂ©rieurs Ă  Linux 2.6.17, une limite RLIMIT_CPU Ă  0 est interprĂ©tĂ©e par erreur comme « pas de limite » (comme RLIM_INFINITY ). Depuis Linux 2.6.17, dĂ©finir la limite Ă  0 a un effet, mais la limite est en fait d’une seconde.

En raison d’un bogue du noyau, RLIMIT_RTPRIO ne marche pas dans Linux 2.6.12 ; le problĂšme a Ă©tĂ© corrigĂ© dans Linux 2.6.13.

Dans Linux 2.6.12, il y avait une différence de 1 entre les valeurs de priorité renvoyées par getpriority (2) et RLIMIT_NICE . Du coup, la limite réelle pour la valeur de politesse était calculée comme 19 - rlim_cur . Cela est corrigé depuis Linux 2.6.13.

A partir de Linux 2.6.12, si un processus atteint sa limite souple RLIMIT_CPU et qu’il dispose d’un gestionnaire pour SIGXCPU , alors en plus d’invoquer le gestionnaire de signal, le noyau augmente la limite souple d’une seconde. Ce comportement se rĂ©pĂšte si le processus continue de consommer du temps processeur, jusqu’à ce que la limite stricte soit atteinte, auquel cas le processus est tuĂ©. D’autres implĂ©mentations ne modifient pas la limite souple RLIMIT_CPU de cette façon, et le comportement de Linux n’est alors probablement pas conforme aux standards ; pour cette raison, les applications portables doivent Ă©viter de tabler sur ce comportement. La limite propre Ă  Linux RLIMIT_RTTIME se comporte de façon analogue lorsque la limite souple est atteinte.

Les noyaux antĂ©rieurs Ă  Linux 2.4.22 ne dĂ©tectaient pas l’erreur EINVAL pour setrlimit () quand rlim->rlim_cur Ă©tait plus grand que rlim->rlim_max .

Pour des raisons de compatibilitĂ©, Linux ne renvoie pas d’erreur quand une tentative de positionnement de RLIMIT_CPU a Ă©chouĂ©.

Représentation des limites de ressources de grande taille sur lesplate-formes 32 bits

Les fonctions d’enrobage de la glibc getrlimit () et setrlimit () utilisent un type 64 bits rlim_t , et ce mĂȘme sur les plateformes 32 bits. Cependant, le type rlim_t utilisĂ© dans les appels systĂšmes getrlimit () et setrlimit () est en fait un unsigned long (de 32 bits). De plus, sur Linux, le noyau traite les limites de ressources sur les systĂšmes 32 bits au moyen du type unsigned long . Un type 32 bits n’est pourtant pas assez grand. Dans le cas prĂ©sent, la limite la plus pertinente est RLIMIT_FSIZE , qui indique la taille maximum que peut atteindre un fichier : pour ĂȘtre utilisable, cette limite doit ĂȘtre reprĂ©sentĂ©e par un type de la mĂȘme taille que celui utilisĂ© pour reprĂ©senter les positions de curseur dans le fichier — c’est Ă  dire, de la taille d’un off_t 64 bits (en considĂ©rant que le programme a Ă©tĂ© compilĂ© avec l’option _FILE_OFFSET_BITS=64 ).

Pour contourner cette limitation du noyau, si un programme tente d’affecter Ă  une limite de ressource une valeur trop grande pour ĂȘtre reprĂ©sentĂ©e par un type unsigned long de 32 bits, la fonction d’enrobage de la glibc setrlimit () change implicitement la valeur de la limite en RLIM_INFINITY . Autrement dit, l’affectation de la limite de ressource n’est pas prise en compte, et cela sans aucune notification.

Depuis la glibc 2.13, la glibc contourne ces limitations des appels systÚme getrlimit () et setrlimit () en implémentant les fonctions setrlimit () et getrlimit () qui font appel à prlimit ().

EXEMPLES

Le programme ci-dessous dĂ©montre l’utilisation de prlimit ().

#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#include <err.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/resource.h>
#include <time.h>
int
main(int argc, char *argv[])
{
pid_t pid;
struct rlimit old, new;
struct rlimit *newp;
if (!(argc == 2 || argc == 4)) {
fprintf(stderr, "Usage: %s <pid> [<nouvelle-limite-souple> "
"<nouvelle-limite-stricte>]\n", argv[0]);
exit(EXIT_FAILURE);
}
pid = atoi(argv[1]); /* PID du processus cible */
newp = NULL;
if (argc == 4) {
new.rlim_cur = atoi(argv[2]);
new.rlim_max = atoi(argv[3]);
newp = &new;
}
/* Définir la limite de temps CPU du processus cible ;
récupérer et afficher la limite de temps CPU antérieure */
if (prlimit(pid, RLIMIT_CPU, newp, &old) == -1)
err(EXIT_FAILURE, "prlimit-1");
printf("Limites précédentes : souple=%jd; stricte=%jd\n",
(intmax_t) old.rlim_cur, (intmax_t) old.rlim_max);
/* Récupérer et afficher la nouvelle limite de temps CPU */
if (prlimit(pid, RLIMIT_CPU, NULL, &old) == -1)
err(EXIT_FAILURE, "prlimit-2");
printf("Nouvelles limites : souple=%jd; stricte=%jd\n",
(intmax_t) old.rlim_cur, (intmax_t) old.rlim_max);
exit(EXIT_SUCCESS);
}

VOIR AUSSI

prlimit (1), dup (2), fcntl (2), fork (2), getrusage (2), mlock (2), mmap (2), open (2), quotactl (2), sbrk (2), shmctl (2), malloc (3), sigqueue (3), ulimit (3), core (5), capabilities (7), cgroups (7), credentials (7), signal (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 à debian-l10n-french@lists.debian.org .