Я на Ubuntu 17.04. Попытка увеличить лимит открытого файла, и ни одна из инструкций, которые я нашел в Интернете, не работает. Я могу идти до 4096, но не могу пройти мимо этого.
$ ulimit -n
1024
$ ulimit -n 4096
$ ulimit -n
4096
Это работает. Это не:
$ ulimit -n 4097
bash: ulimit: open files: cannot modify limit: Operation not permitted
Похоже, из-за жесткого ограничения:
$ ulimit -Hn
4096
Я попытался добавить эти строки в /etc/security/limits.conf:
* hard nofile 65535
* soft nofile 65535
root soft nofile 65535
root hard nofile 65535
Также добавили эту строку в /etc/pam.d/common-session и /etc/pam.d/common-session-noninteractive:
session required pam_limits.so
После этого я перезагрузил компьютер. Изменения в limit.conf, похоже, ни на что не влияют. Жесткий предел все еще остается на уровне 4096, что не позволяет мне идти выше. Как мне увеличить лимит открытых файлов?
Вот дополнительная информация о конфигурации:
$ cat /proc/sys/fs/file-max
1624668
источник
DefaultLimitNOFILE=65535
сделал свое дело. Но почему не/etc/security/limits.conf
работает?/etc/systemd/system.conf
), которая не зависит от обычной конфигурации для сеансов терминала (/etc/security/limits.conf
). Я не знаю достаточно о systemd, чтобы понять, почему он был реализован таким образом.root
пользователя не могут быть определены*
или указателями группы.root
литерал должен быть указан явно.Не нужно ничего менять в
/etc/security/limits.conf
файле, это игнорируется, если вы используете systemd.(Воспроизведение измененного ответа на другой вопрос в сети ...)
Альтернатива для тех, кто предпочитает не редактировать файлы по умолчанию
/etc/systemd/system.conf
и/etc/systemd/user/conf
:создайте новый файл
/etc/systemd/system.conf.d/limits.conf
с таким содержанием:запускать
systemctl daemon-reexec
с правами rootвыйти и снова войти
проверьте ваш новый лимит с
ulimit -n
.Обратитесь к
systemd-system.conf
странице справки для деталей.источник
/etc/systemd/system.conf
. Внесение изменений, кажется, сделало свое дело, спасибо.Используя Ubuntu 17.04, я получил жесткое ограничение:
Я мог бы понизить это, используя
ulimit
, но не увеличивать это, так как вопрос описывает это.ulimit
Руководство описывает:Поэтому я попытался установить более высокий предел в
/etc/security/limits.conf
следующем виде:и новый логин вроде
ssh localhost -l user
дал мне новый лимит:Я надеюсь, что это работает и для вас.
источник
редактировать /etc/systemd/system/sonar.service
добавить эти две строки в разделе Сервис
[Обслуживание]
LimitMEMLOCK = бесконечность
LimitNOFILE = 65535
это работает для меня.
источник
TL; DR Я чувствовал необходимость сконцентрировать ответы, чтобы их было легче найти. Мне понадобились целые годы, чтобы собрать все кусочки, чтобы все работало правильно ...
Есть 2 места для рассмотрения.
GUI сессия
или лучше здесь:
оболочка
или лучше здесь:
После изменения настроек в вышеуказанных файлах перезагрузите компьютер, а затем проверьте пределы с помощью:
ulimit -n -Hn -Sn
источник