Lorsque j'ai essayé d'installer un logiciel sur RedHat EL5, j'ai eu l'erreur que la valeur attendue du nofile soft/hard est 4096 alors que la valeur par défaut est 1024. J'ai réussi à augmenter le nombre, mais je ne sais pas quels sont les paramètres. Se réfèrent-ils au lien logiciel et au lien matériel?
La façon dont je le change est:
A) modifiez le fichier /etc/security/limits.conf
user soft nofile 5000
user hard nofile 6000
B) modifiez le /etc/pam.d/system-auth
session required /lib/security/$ISA/pam_limits.so
C) modifier /etc/pam.d/login
session required pam_limits.so
Après avoir effectué le changement (en passant à root). Il semble que je doive redémarrer la machine pour la rendre effective. Mais certains articles en ligne disent que cela devrait entrer en vigueur juste après avoir effectué le changement. J'apprécierais si quelqu'un pouvait le clarifier.
Ce sont: une limite "douce" et "dure" pour le nombre de fichiers qu'un processus peut avoir ouvert à la fois. Les deux limitent la même ressource (aucune relation avec les liens durs ou quoi que ce soit). La différence est la suivante: la limite logicielle peut être modifiée ultérieurement, jusqu'à la valeur de la limite matérielle, par le processus s'exécutant avec ces limites et la limite matérielle ne peut être abaissée que - le processus ne peut pas se donner plus de ressources en augmentant la limite matérielle (sauf les processus exécutés avec des privilèges de superutilisateur (en tant que root)).
Des limites similaires peuvent être définies pour d'autres ressources système: mémoire système, temps CPU, etc. Voir la page de manuel setrlimit(2)
ou la description de la commande intégrée ulimit
de votre Shell (par exemple dans le bash(1)
page de manuel.
Aucun redémarrage n'est requis, mais /etc/security/limits.conf n'est traité que lorsque /lib/security/pam_limits.so s'exécute, au moment de la connexion, et les valeurs sont héritées par les processus enfants. Après une nouvelle connexion, tout ce qui se trouve sous cette connexion héritera des valeurs spécifiées.
En complément, certaines distributions incluent /etc/security/limits.d
où des "extraits" de configurations limites peuvent être placés. Vous pouvez créer des fichiers comme celui-ci:
$ ll /etc/security/limits.d/
-rw-r--r--. 1 root root 191 Aug 18 10:26 90-nproc.conf
-rw-r--r-- 1 root root 70 Sep 29 12:54 90-was-filedesc.conf
Avec des fichiers contenant les limites que vous souhaitez définir:
$ more /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 1024
root soft nproc unlimited
$ more /etc/security/limits.d/90-was-filedesc.conf
root hard nofile 20000
Je trouve que l'utilisation de cette méthode pour gérer ces types de remplacements est beaucoup plus propre que le nettoyage avec /etc/security/limits.conf
.
De plus, si vous souhaitez définir à la fois soft/hard sur la même valeur, vous pouvez utiliser le -
comme type.
$ more /etc/security/limits.d/90-was-filedesc.conf
root - nofile 20000