Что означает "soft/hard nofile" в Linux?
Когда я попытался установить программное обеспечение на RedHat EL5, я получил ошибку, согласно которой ожидаемое значение soft/hard nofile составляет 4096, а по умолчанию - 1024. Мне удалось увеличить число, но я не знаю, что параметры. Они ссылаются на софт-ссылку и жесткую ссылку?
Как я его изменяю:
A) измените /etc/security/limits.conf
user soft nofile 5000
user hard nofile 6000
B) изменить /etc/pam.d/system-auth
session required /lib/security/$ISA/pam_limits.so
C) изменить /etc/pam.d/login
session required pam_limits.so
После внесения изменений (путем переключения на root). Кажется, что мне нужно перезагрузить компьютер, чтобы он стал эффективным. Но некоторые сообщения в Интернете говорят, что это должно произойти сразу после внесения изменений. Был бы признателен, если кто-нибудь сможет его прояснить.
Ответы
Ответ 1
Это: "мягкий" и "жесткий" предел количества файлов, которые процесс мог открыть одновременно. Оба ограничивают один и тот же ресурс (нет отношения к жестким ссылкам или чему-либо). Разница заключается в следующем: мягкий предел может быть изменен позже, вплоть до значения жесткого предела, процессом, выполняющимся с этими ограничениями, и жесткий предел может быть снижен только - процесс не может назначить себе больше ресурсов, увеличив жесткий предел (за исключением процессов, выполняемых с привилегиями суперпользователя (как root)).
Аналогичные ограничения могут быть установлены для других системных ресурсов: системная память, время процессора и т.д. См. справочную страницу setrlimit(2)
или описание команды сборки оболочки ulimit
(например, на странице руководства bash(1)
.
Ответ 2
Перезагрузка не требуется, но /etc/security/limits.conf обрабатывается только при запуске /lib/security/pam _limits.so, который находится во время входа в систему, и значения наследуются дочерними процессами. После нового входа все под этим именем наследует указанные значения.
Ответ 3
В качестве дополнительного варианта некоторые дистрибутивы включают /etc/security/limits.d
, где могут быть размещены "фрагменты" предельных конфигураций. Вы можете создавать такие файлы, как:
$ 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
С файлами, содержащими любые ограничения, которые вы хотите установить:
$ more /etc/security/limits.d/90-nproc.conf
# Default limit for number of user 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
Я использую этот метод для управления этими типами переопределений намного чище, чем с помощью /etc/security/limits.conf
.
Также, если вы хотите установить как soft/hard на одно и то же значение, вы можете использовать -
как тип.
$ more /etc/security/limits.d/90-was-filedesc.conf
root - nofile 20000