Wie ändere ich ulimit für geöffnete Dateien unter SUSE Linux Enterprise Server 10.4 dauerhaft?

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 # 

Wie kann ich das Limit des Root-Benutzers von 1024 dauerhaft auf etwas anderes festlegen? Wie kann ich das ulimit global einstellen? Werden die Änderungen im Moment wirksam?

ps: Ich habe bereits danach gegoogelt, kann aber die Datei nicht finden, in der ich sie dauerhaft einstellen kann:

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

und..:

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
quelle

Antworten:

9

Verwenden Sie das Modul pam_limits (8) und fügen Sie die folgenden zwei Zeilen hinzu /etc/security/limits.conf:

root hard nofile 8192
root soft nofile 8192

Dadurch wird das Ressourcenlimit für RLIMIT_NOFILE (sowohl weich als auch hart) für root bei der nächsten Anmeldung auf 8192 erhöht.

Petr Uzel
quelle
1
Ich habe es geändert, aber es scheint keine Auswirkung zu haben, wenn ulimit -a mit dem Stammverzeichnis angezeigt wird. Wie kann diese Änderung auch nach einem erneuten Login auf Limits.conf angewendet werden, ohne dass ein Neustart erforderlich ist? : D
Gasko Peter
1
ulimit -n 8192legt sofort das Limit für die aktuelle Shell und alle untergeordneten Prozesse fest.
Petr Uzel
Ich akzeptiere .. aber afaik die Maschine muss neu gestartet werden :) - bis dahin .bash_profile .. ulimit -n 8192
gasko peter
Die Datei /etc/security/limits.confist nur die halbe Wahrheit: Die Datei wird von gelesen pam_limits.so, was wiederum konfiguriert werden muss. Die Handbuchseite sagt, /etc/pam.d/loginsollte eine Zeile haben session required pam_limits.so.
U. Windl