Это происходит в Ubuntu Release 12.04 (точная) 64-битное ядро Linux 3.2.0-25-virtual
Я пытаюсь увеличить количество открытых файлов, разрешенных для пользователя. Это для моего Java-приложения Eclipse, где текущий предел 1024 недостаточно.
Согласно сообщениям, которые я нашел до сих пор, я должен иметь возможность
/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
-bash: 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
Но даже когда я получаю eclipse для запуска с правами root, мое приложение по-прежнему падает из-за исключения «Too Many Open File»!
До сих пор я не нашел способа увеличить лимит открытых файлов для пользователя без полномочий root.
Как мне правильно сделать это? Я посмотрел на несколько других сообщений, но не повезло!
/etc/security/limits.conf
вам может потребоваться выйти из системы, а затем снова войти в нее, прежде чем вы сможете использовать новый максимальный предел. Я сделал это, и был сбит с толку,ulimit -Hs
показав 1000, когда только что поднял его до 1000000! Затем я вышел из системы и снова вошел, и ulimit показал новую сумму.