Как я увеличиваю открытый предел файлов для некорневого пользователя?

Это происходит на Релизе 12.04 Ubuntu (точное) 64-разрядное Ядро 3.2.0-25-виртуальный Linux

Я пытаюсь увеличить число открытых файлов, допускал пользователя. Это для моего JAVA-приложения затмения, где ограничение по току 1 024 недостаточно.

Согласно сообщениям я нашел до сих пор, я должен смочь поместить строки в

/etc/security/limits.conf как это:

soft nofile 4096
hard nofile 4096

увеличивать число открытых файлов допускало всех пользователей.

Но это не работает на меня, и я думаю, что проблема не связана с тем файлом.

Для всех пользователей предел по умолчанию 1024, независимо от того, что находится в/etc/security/limits.conf (я перезагрузил после изменения того файла),

$ ulimit -n
1024

Теперь, несмотря на записи в/etc/security/limits.conf я не могу увеличить это:

$ ulimit -n 2048

- удар: ulimit: открытые файлы: не может изменить предел: Операция, не разрешенная странную часть, состоит в том, что я могу изменить предел вниз, но не могу изменить его вверх - даже для возвращения к числу, которое является ниже исходного предела:

$ ulimit -n 800
$ ulimit -n
800

$ ulimit -n 900

-bash: ulimit: open files: cannot modify limit: Operation not permitted

Как корень, я могу изменить тот предел тому, что я хочу, или вниз. Это, даже кажется, не заботится о, предположительно, пределе в масштабе всей системы в/proc/sys/fs/file-max

# cat /proc/sys/fs/file-max
188897

# ulimit -n 188898
# ulimit -n 
188898

Но даже я заставляю затмение работать как корень, мое приложение все еще отказывает из-за "Слишком многих, Открывают Файл" исключение!

До сих пор я не нашел способа увеличить открытый предел файлов для некорневого пользователя.

Как я должен правильно сделать это? Я посмотрел на несколько других сообщений, но никакую удачу!

173
задан 20 August 2018 в 23:35

4 ответа

Команда ulimit по умолчанию изменяет жесткие пределы, которые вы (пользователь) можете снизить, но не можете увеличить.

Используйте -S , чтобы изменить предел SOFT , который может находиться в диапазоне от 0 до { HARD }.

Я фактически использовал псевдоним ulimit на ulimit -S , поэтому по умолчанию все время используются мягкие ограничения.

alias ulimit='ulimit -S'

Что касается вашей проблемы, вам не хватает столбца в ваших записях в /etc/security/limits.conf .

Должно быть ЧЕТЫРЕ столбца, но первый в вашем примере отсутствует.

* soft nofile 4096
* hard nofile 4096

Первый столбец описывает, на кого должно подаваться ограничение. '*' - это подстановочный знак, означающий всех пользователей. Чтобы увеличить ограничения для root , вы должны явно ввести «root» вместо «*».

Также необходимо отредактировать /etc/pam.d/common-session* и добавьте в конец следующую строку:

session required pam_limits.so
154
ответ дан 20 August 2018 в 23:35

У меня много проблем с тем, чтобы заставить это работать.

Использование следующего позволяет обновлять его независимо от вашего разрешения пользователя.

sudo sysctl -w fs.inotify.max_user_watches=100000
7
ответ дан 20 August 2018 в 23:35

Ja katram lietotājam izmantojat mīkstos un stingros ierobežojumus, varat izmantot šādus vārdus:

su USER --shell /bin/bash --command "ulimit -n"

, lai pārbaudītu, vai jūsu iestatījumi darbojas konkrētajā lietotājā, vai nē.

23
ответ дан 20 August 2018 в 23:35
ulimit -S -n 4096

Это должно увеличить ваш мягкий предел для открытых файлов (-n) до 4096.

1
ответ дан 22 November 2019 в 22:53

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

Похожие вопросы: