Как навсегда изменить ulimit для открытых файлов на SUSE Linux Enterprise Server 10.4?

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 # 

Как я могу установить ограничение пользователя root от 1024 до чего-то другого, ПОСТОЯННО? Как я могу установить ulimit глобально? Изменения вступят в силу в данный момент?

PS: я уже гуглил по нему, но не могу найти файл, где я могу установить его навсегда:

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

а также..:

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 # 
Гаско Питер
источник

Ответы:

9

Используйте модуль pam_limits (8) и добавьте следующие две строки в /etc/security/limits.conf:

root hard nofile 8192
root soft nofile 8192

Это увеличит лимит ресурса RLIMIT_NOFILE (как программного, так и жесткого) для пользователя root до 8192 при следующем входе в систему.

Петр Узел
источник
1
Я изменил его, но, видя, что ulimit -a с рутом, даже после повторного входа в систему, не дает никакого эффекта, как применить это изменение к limit.conf без перезагрузки? : D
Гаско Питер
1
ulimit -n 8192немедленно установит лимит для текущей оболочки и всех ее дочерних процессов.
Петр Узел
Я принимаю .. но афаик машина будет нуждаться в перезагрузке :) - до тех пор .bash_profile .. ulimit -n 8192
gasko peter
Файл /etc/security/limits.conf- только половина правды: файл прочитан pam_limits.so, который, в свою очередь, должен быть настроен. Страница руководства говорит, что /etc/pam.d/loginдолжна иметь строку session required pam_limits.so.
У. Уиндл