Bash-Linux.com : Le SHELL pour les nuls

  Actuellement 46 lignes de commande disponibles
login as: root
root@213.186.33.18's password:
Last login: Sun Aug 1 8:02:21 2010 from 38.107.191.100
[root@bash-linux ~] # echo "Bienvenue sur Bash-Linux.com"_
 Manuel des commandes UNIX (man) Version française

Indiquez la fonction :

Man Getrlimit en français

GETRLIMIT(2) Manuel du programmeur Linux GETRLIMIT(2)
 
NOM


getrlimit, setrlimit - Lire/ecrire les limites des ressources.
 
SYNOPSIS


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


getrlimit() et setrlimit() lisent ou ecrivent les limites des ressources systemes. Chaque ressource a une limite souple et une limite stricte definies par la structure rlimit (l'argument rlim de getr- limit() et setrlimit()) : struct rlimit { rlim_t rlim_cur; /* limite souple */ rlim_t rlim_max; /* limite stricte (plafond de rlim_cur) */ }; 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-privilegie peut seulement modifier sa limite souple dans l'intervalle entre zero et la limite stricte, et diminuer (de maniere irreversible) sa limite stricte. Un processus privilegie (sous Linux : un processus ayant la capacite CAP_SYS_RESOURCE) peut modifier ses deux limites a sa guise. La valeur RLIM_INFINITY indique une limite infinie pour la ressource (aussi bien pour getrlimit() que pour setrlimit()). resource doit etre l'un des elements suivants : RLIMIT_AS Taille maximum de la memoire virtuelle du processus en octets. The maximum size of the process's virtual memory (address space) in bytes. Cette limite affecte les appels a brk(2), mmap(2) et mremap(2), qui echouent avec l'erreur ENOMEM en cas de depasse- ment de cette limite. De meme, l'extension de la pile automa- tique echouera (et generera un SIGSEGV qui tuera le processus si aucune pile alternative n'est disponible avec sigaltstack(2)). Depuis que cette valeur est de type long, sur les machines ou le type long est sur 32 bits, soit cette limite est au plus 2 GiB, soit cette ressource est illimitee. RLIMIT_CORE Taille maximum du fichier core. Lorsqu'elle vaut zero, aucun fichier d'image noyau (Ndt : core dump) n'est cree. Lorsqu'elle ne vaut pas zero, les fichiers d'image noyau plus grands sont tronques a cette taille. RLIMIT_CPU Limite de temps CPU en secondes. Si un processus atteint cette limite souple, il recoit le signal SIGXCPU. L'action par defaut en est la terminaison du processus. Mais le signal peut etre capture et le gestionnaire peut renvoyer le controle au pro- gramme principal. Si le processus continue a consommer du temps CPU, il recevra SIGXCPU toutes les secondes jusqu'a atteindre sa limite stricte, ou il recevra SIGKILL. (Ceci correspond au com- portement de Linux 2.2 a 2.6. Les implementations varient sur le comportement vis-a-vis d'un processus qui continue a consommer du temps CPU apres depassement de sa limite souple. Les applications portables qui doivent capturer ce signal devraient prevoir une terminaison propre des la premiere recep- tion de SIGXCPU). RLIMIT_DATA Taille maximale du segment de donnees d'un processus (donnees initialisees, non-initialisees, et tas). Cette limite affecte les appels brk() et sbrk(), qui echouent avec l'erreur ENOMEM si la limite souple est depassee. RLIMIT_FSIZE Taille maximale d'un fichier que le processus peut creer. Les tentatives d'extension d'un fichier au-dela de cette limite resultent en un signal SIGXFSZ. Par defaut ce signal termine le processus, mais il peut etre capture, et dans ce cas l'appel systeme concerne (par exemple write(), truncate()) echoue avec l'erreur EFBIG. RLIMIT_LOCKS (Dans les premiers Linux 2.4 seulement) Une limite sur le nombre combine de verrous flock() et fcntl() que le processus peut etablir. RLIMIT_MEMLOCK Le nombre maximal d'octets de memoire que le processus peut ver- rouiller en RAM. Cette limite est arrondie par defaut au plus proche multiple de la taille de page systeme. Cette limite affecte les appels lock() et mlockall() et l'operation MAP_LOCKED de mmap(2). Depuis Linux 2.6.9, cela affecte egale- ment l'operation SHM_LOCK de shmctl(2), ou est configure un max- imum sur le nombre total d'octets dans les segments de memoire partagee (voir shmget(2)) qui peut etre verrouillee par l'UID reel du processus appelant. Les verrouillages SHM_LOCK de shm- ctl(2) sont comptabilises de maniere separee des verrouillages memoire par processus effectues par mlock(2), mlockall(2) et l'operation MAP_LOCKED de mmap(2) ; un processus peut ver- rouiller autant d'octets jusqu'a sa limite dans chacune de ces deux categories. Dans les noyaux Linux precedant la version 2.6.9, cette limite controlait la quantite de memoire qu'un pro- cessus privilegie pouvait verrouiller. Depuis Linux 2.6.9, il n'y a aucune limite sur la quantite de memoire qu'un processus privilegie peut verrouiller, et cette limite concerne plutot les processus non privilegies. RLIMIT_MSGQUEUE (Depuis Linux 2.6.8) Specifie la limite du nombre d'octets qui peuvent etre alloues aux files de messages POSIX pour l'UID reel du processus appelant. Cette limite est appliquee pour mq_open(3). Chaque file de message que l'utilisateur cree compte (jusqu'a ce qu'elle soit supprimee) dans cette limite suivant la formule : bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) + attr.mq_maxmsg * attr.mq_msgsize ou attr est la structure mq_attr specifiee comme le quatrieme argument de mq_open(). Le premier cumulateur dans la formule, qui inclut sizeof(struct msg_msg *) (4 octets sur Linux/x86), s'assure que l'utilisateur ne puisse pas creer un nombre illimite de messages de taille nulle (de tels messages consomment neanmoins chacun un peu de memoire) RLIMIT_NICE (depuis Linux 2.6.12, mais voir la section BOGUES plus loin) Specifier un plafond que la valeur de priorite du processus peut atteindre avec setpriority(2) ou nice(2). Le plafond actuel pour la valeur de priorite est calcule de la maniere suivante : 20 - rlim_cur. (Cette bizarrerie apparait car on ne peut pas donner des valeurs negatives comme valeurs de limites de ressources car elles ont une signification particuliere. Par exemple, RLIM_INFINITY vaut -1.) RLIMIT_NOFILE Le nombre maximal de descripteurs de fichiers qu'un processus peut ouvrir simultanement. Les tentatives d'ouverture (open(), pipe(), dup(), etc) depassant cette limite renverront l'erreur EMFILE. RLIMIT_NPROC Le nombre maximum de processus qui peuvent etre crees pour l'UID reel du processus appelant. Une fois cette limite atteinte, fork() echoue avec l'erreur EAGAIN. RLIMIT_RSS Indiquer la limite (en pages) pour la taille de l'ensemble resi- dent du processus (le nombre de page de memoire virtuelle en RAM). Cette limite n'a d'effet que dans Linux 2.4.x, x < 30, et n'affecte que les appels madvise() indiquant MADV_WILLNEED. RLIMIT_RTPRIO (depuis Linux 2.6.12, mais voir la section BOGUES) Specifier un plafond a la priorite temps reel qui peut etre con- figuree pour le processus en utilisant sched_setscheduler(2) et sched_setparam(2). RLIMIT_SIGPENDING (Depuis Linux 2.6.8) Specifier la limite du nombre de signaux qui peuvent etre mis en file d'attente pour l'UID reel d'un processus appelant. Les sig- naux standard et temps reel sont additionnes en vue de verifier cette limite. Toutefois, la limite est seulement appliquee pour sigqueue(2) ; il est toujours possible d'utiliser kill(2) pour mettre en file d'attente une instance de chacun des signaux qui ne sont pas encore dans la file d'attence du processus. RLIMIT_STACK La taille maximale de la pile du processus, en octets. Une fois cette limite atteinte, un signal SIGSEGV est declenche. Pour gerer ce signal, le processus doit utiliser une pile specifique pour signaux (sigaltstack(2)). RLIMIT_OFILE est le nom BSD pour RLIMIT_NOFILE.
 
VALEUR RENVOYEE


Ces fonctions renvoient 0 si elles reussissent, ou -1 si elles echouent, auquel cas errno contient le code d'erreur.
 
ERREURS


EFAULT rlim pointe en dehors de l'espace d'adressage disponible. EINVAL resource n'est pas valide ; ou, pour setrlimit() : rlim->rlim_cur etait plus grand que rlim->rlim_max. EPERM Un processus non privilegie a essaye d'utiliser setrlimit() pour augmenter ses limites logicielle ou materielle au dela de l'actuelle limite materielle ; la capacite CAP_SYS_RESOURCE est necessaire pour pouvoir faire cela. Ou alors le super-utilisa- teur essaye d'augmenter les limites au-dessus des maxima du noyau (NR_OPEN).
 
BOGUES


Dans les anciens noyaux Linux, les signaux SIGXCPU et SIGKILL, envoyes lorsqu'un processus rencontrait les limites RLIMIT_CPU logicielle et materielle, etaient envoyes une seconde (CPU) plus tard qu'ils n'auraient d l'etre. Ceci a ete corrige dans le noyau 2.6.8. Dans les noyaux 2.6.x precedant le 2.6.17, une limite RLIMIT_CPU de 0 etait faussement interprete comme pas de limite (comme RLIM_INFIN- ITY). Depuis le noyau 2.6.17, fixer une limite de 0 n'a aucun effet mais est actuellement interprete comme une limite de 1 seconde. Un bogue du noyau fait que RLIMIT_RTPRIO ne fonctionne pas dans le noyau 2.6.12 ; cela a ete corrige dans le noyau 2.6.13. Dans le noyau 2.6.12, il y avait un ecart de 1 entre l'intervalle de priorite renvoye par getpriority(2) et RLIMIT_NICE. Cela a pour effet que le plafond actuel de la valeur de priorite etait calcule de la facon suivante : 19 - rlim_cur. Cela a ete corrige dans le noyau 2.6.13. Les noyaux anterieurs au 2.4.22 ne diagnostiquaient pas l'erreur EINVAL pour setrlimit() lorsque rlim->rlim_cur etait plus grand que rlim->rlim_max.
 
NOTES


Un processus fils cree avec fork(2) herite des limites de ressource de son pere. Les limites de ressource sont preservees a travers un execve(2).
 
CONFORMITE


SVr4, BSD 4.3, POSIX.1-2001. RLIMIT_MEMLOCK et RLIMIT_NPROC viennent de BSD et ne sont pas specifiees dans POSIX.1-2001 ; elles sont pre- sentes sur les systemes BSD et Linux et mais sur peu d'autres implemen- tations. RLIMIT_RSS vient de BSD et n'est pas specifiee dans POSIX.1-2001 ; elle est neanmoins presente sur la plupart des implemen- tations. RLIMIT_MSGQUEUE, RLIMIT_NICE, RLIMIT_RTPRIO et RLIMIT_SIG- PENDING sont specifiques a Linux.
 
VOIR AUSSI


dup(2), fcntl(2), fork(2), getrusage(2), mlock(2), mmap(2), open(2), quotactl(2), sbrk(2), shmctl(2), sigqueue(2), malloc(3), ulimit(3), core(5), capabilities(7), signal(7)
 
TRADUCTION


Ce document est une traduction realisee par Christophe Blaess le 11 octobre 1996 et revisee le 14 aot 2006. L'equipe de traduction a fait le maximum pour realiser une adaptation francaise de qualite. La version anglaise la plus a jour de ce document est toujours consultable via la commande : LANG=C man 2 getrlimit . N'hesitez pas a signaler a l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. Linux 2.6.13 20 septembre 2005 GETRLIMIT(2)


 Dernières recherches
Man  en anglais Man getrlimit en anglaisMan  en français Man getrlimit en français
Man  en anglais Man pstree en anglaisMan  en français Man pstree en français
Man  en anglais Man cron en anglaisMan  en français Man cron en français
Man  en anglais Man mkdir en anglaisMan  en français Man mkdir en français
Man  en anglais Man sprintf en anglaisMan  en français Man sprintf en français
Man  en anglais Man connect en anglaisMan  en français Man connect en français
Man  en anglais Man regex en anglaisMan  en français Man regex en français
Man  en anglais Man fseek en anglaisMan  en français Man fseek en français
Man  en anglais Man fork en anglaisMan  en français Man fork en français
Man  en anglais Man sched_yield en anglaisMan  en français Man sched_yield en français
Man  en anglais Man getsockopt en anglaisMan  en français Man getsockopt en français
Man  en anglais Man ip en anglaisMan  en français Man ip en français
Man  en anglais Man hosts en anglaisMan  en français Man hosts en français
Man  en anglais Man gunzip en anglaisMan  en français Man gunzip en français
Man  en anglais Man select_tut en anglaisMan  en français Man select_tut en français

 Recherche

Dans ce moteur de recherche, vous pouvez taper directement votre besoin, en une phrase normale, humaine.
Exemple : vous cherchez comment remplacer un mot par un autre dans tous les fichiers d'un certain dossier. Vous pouvez écrire "Comment remplacer un mot par un autre dans tous les fichiers d'un dossier". Le moteur vous ramenera les résultats en fonction de leur pertinence.
Vous pouvez bien sûr ne chercher qu'un seul mot-clé, par exemple "find".
 Toutes les lignes de code
Par popularité
Par fonction
Recherche avancée
 Les logiciels SHELL/SSH
Putty
Astuces Bash
Faire du SHELL avec PHP!
 La doc officielle
Les man Linux en français
Les man Linux en anglais
 Proposer vos bash
Partagez vos lignes!
 Les requêtes
Déposer une requête
Voir/répondre à une requête
 Quelques sites interessants
Bons sites pour apprendre
 Rechercher