Невозможно увеличить лимит открытого файла сверх 999999 для 14.04+

Я пытаюсь увеличить лимит открытого файла как для пользователя root, так и для пользователя без полномочий root через /etc/security/limits.conf, Но не может пройти 999999 все, что выше этого значения, возвращается к значению по умолчанию 1024 ни я не могу установить его на неограниченное

Вот мой limits.conf

* hard nofile 999999
* hard nofile 999999
root hard nofile 999999
root soft nofile 999999

Выше работает отлично и ulimit -n вернуть 999999,

Но если я сделаю значение на один шаг выше или unlimited или же -1 или же infinity это не работает ulimit -n вернуть 1024

Я ссылался здесь: limit.conf - файл конфигурации для модуля pam_limits | Ubuntu Manpage

Спасибо

2 ответа

Я знаю, что это 10 месяцев с опозданием, но вы дважды установили жесткий лимит для всех пользователей. Измените вторую строку, чтобы быть мягким ulimit.

* hard nofile 999999
* soft nofile 999999
root hard nofile 999999
root soft nofile 999999

После этого вы должны увидеть:

$ ulimit -n
999999
$ 

Ваш файл должен был всегда работать для root, так как ограничения были правильно определены.

Кроме того, вы не можете использовать -1, бесконечность, неограниченный или тому подобное, вы должны использовать буквальное значение. Максимальное поддерживаемое значение для этого определено в ядре и представлено в /proc/sys/fs/nr_open. В моей среде Centos 7 и Debian Strech я получаю одинаковое значение:

$ cat /proc/sys/fs/nr_open
1048576
$

Вы также должны начать новый сеанс для обновления лимитов.

Чтобы заставить это работать, нужно изменить три файла:

  • /etc/security/limits.conf
  • /etc/pam.d/common-session
  • /etc/pam.d/common-session-noninteractive

Вы уже добавили необходимые строки в первый файл, затем в двух других файлах эта строка необходима:

session required pam_limits.so

Пожалуйста, обратите внимание:

То, на что большинство ресурсов не обращают внимания, это то, что ваши пределы могут быть легко изменены любым ответственным за выполнение ваших процессов. Если ulimit -n (запускается от имени правильного пользователя) дает вам только что заданный номер, но cat / proc / {process_id} / limit по-прежнему печатает младшее число, у вас почти наверняка есть менеджер процессов, сценарий инициализации или что-то подобное портит ваши пределы. Также необходимо помнить, что процессы наследуют ограничения родительского процесса.

Следовательно, если такой процесс существует, вам придется изменить файл конфигурации, чтобы заставить его работать.

Источник: https://underyx.me/2015/05/18/raising-the-maximum-number-of-file-descriptors

Другие вопросы по тегам