Comment modifier ulimit pour les fichiers ouverts sur SUSE Linux Enterprise Server 10.4 de manière permanente?

9
SERVER:/etc # ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 96069
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 96069
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
SERVER:/etc # 

Comment puis-je définir la limite de l'utilisateur root de 1024 à autre chose, PERMANENT? Comment puis-je configurer ulimit globalement? Les modifications entreront-elles en vigueur dans le moment?

ps: je l'ai déjà recherché sur Google mais je ne trouve pas le fichier où je peux le définir de manière permanente:

SERVER:/etc # grep -RiI ulimit * 2>/dev/null | egrep -v ":#|#ulimit"
init.d/boot.multipath:      ulimit -n $MAX_OPEN_FDS
init.d/multipathd:      ulimit -n $MAX_OPEN_FDS
rc.d/boot.multipath:        ulimit -n $MAX_OPEN_FDS
rc.d/multipathd:        ulimit -n $MAX_OPEN_FDS

et..:

SERVER:/etc # grep -RiI 'MAX_OPEN_FDS' * 2>/dev/null
init.d/boot.multipath:MAX_OPEN_FDS=4096
init.d/boot.multipath:  if [ -n "$MAX_OPEN_FDS" ] ; then
init.d/boot.multipath:      ulimit -n $MAX_OPEN_FDS
init.d/multipathd:MAX_OPEN_FDS=4096
init.d/multipathd:  if [ -n "$MAX_OPEN_FDS" ] ; then
init.d/multipathd:      ulimit -n $MAX_OPEN_FDS
rc.d/boot.multipath:MAX_OPEN_FDS=4096
rc.d/boot.multipath:    if [ -n "$MAX_OPEN_FDS" ] ; then
rc.d/boot.multipath:        ulimit -n $MAX_OPEN_FDS
rc.d/multipathd:MAX_OPEN_FDS=4096
rc.d/multipathd:    if [ -n "$MAX_OPEN_FDS" ] ; then
rc.d/multipathd:        ulimit -n $MAX_OPEN_FDS
SERVER:/etc # 
gasko peter
la source

Réponses:

9

Utilisez le module pam_limits (8) et ajoutez les deux lignes suivantes à /etc/security/limits.conf:

root hard nofile 8192
root soft nofile 8192

Cela augmentera la limite de ressources RLIMIT_NOFILE (à la fois logicielle et matérielle) pour root à 8192 lors de la prochaine connexion.

Petr Uzel
la source
1
Je l'ai modifié, mais cela ne semble pas avoir d'effet en voyant ulimit -a avec la racine, même après une reconnexion, comment appliquer cette modification à limits.conf sans redémarrage? : D
gasko peter
1
ulimit -n 8192définira immédiatement la limite pour le shell actuel et tous ses processus enfants.
Petr Uzel
J'accepte .. mais afaik la machine aura besoin d'un redémarrage :) - jusque-là .bash_profile .. ulimit -n 8192
gasko peter
Le fichier /etc/security/limits.confn'est que la moitié de la vérité: le fichier est lu par pam_limits.so, qui, à son tour, doit être configuré. La page de manuel indique qu'il /etc/pam.d/logindevrait y avoir une ligne session required pam_limits.so.
U. Windl