Я пытаюсь увеличить открытый предел файла для пользователя 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
Я относился здесь: limits.conf - конфигурационный файл для pam_limits модуля | Страница справочника Ubuntu
Спасибо
Существует три файла для изменения, чтобы заставить это работать:
/etc/security/limits.conf
/etc/pam.d/common-session
/etc/pam.d/common-session-noninteractive
Вы уже добавили необходимые строки в первом файле, затем в других двух файлах, эта строка необходима:
session required pam_limits.so
Пожалуйста, примите во внимание:
Вещь, которую большинство ресурсов забыло подчеркивать, состоит в том, что Ваши пределы могут действительно легко быть изменены чем-либо ответственным за выполнение Ваших процессов. Если ulimit-n (выполненный как корректный пользователь) дает Вам число, Вы просто устанавливаете, но кошка/proc/{process_id} / пределы все еще печатает небольшое число, у Вас почти наверняка есть диспетчер процессов, init сценарий или что-то подобное питание Ваших пределов. Также необходимо иметь в виду, что процессы наследовали пределы родительского процесса.
Следовательно, если такой процесс существует затем, необходимо будет изменить файл конфигурации, чтобы заставить его работать.
Источник: https://underyx.me/2015/05/18/raising-the-maximum-number-of-file-descriptors
Я знаю, что это - 10 месяцев поздно, но Вы установили жесткий предел дважды для всех пользователей. Измените вторую строку, чтобы быть мягким ulimit.
* hard nofile 999999
* soft nofile 999999
root hard nofile 999999
root soft nofile 999999
После выполнения этого необходимо видеть:
$ ulimit -n
999999
$
Ваш файл должен был всегда работать на корень, поскольку пределы были правильно определены.
Кроме того, Вы не можете использовать-1, бесконечность, неограниченная и т.п., необходимо использовать литеральное значение. Макс. поддерживаемое значение для этого определяется в ядре и выставляется в/proc/sys/fs/nr_open. В моих песнях 7 и debian расширяют среды, я получаю то же значение:
$ cat /proc/sys/fs/nr_open
1048576
$
Также необходимо запустить новую сессию для пределов обновлению.