В Linux существуют ограничения, определенные системой для всего, что потребляет ресурсы. Например, есть ограничения на количество аргументов, которые можно передать определенной команде, сколько потоков может выполняться одновременно и т. д.
Точно так же существует ограничение на количество открытых файлов. Как вы, возможно, знаете, открытый файл активно используется в некоторых других программах и, следовательно, потребляет память.
Вы можете просмотреть и изменить ограничение на количество открытых файлов с помощью команды ulimit.
Существует два типа ограничений: «жесткое ограничение» и «мягкое ограничение».
- «Жесткое ограничение» для открытых файлов статически заданное значение, и может быть изменен только «корневым» пользователем Linux;
- «Мягкое ограничение» — это ограничение, которое может изменяться процессами динамически, т. е. Во время выполнения, если процессу требуется больше открытых файлов, чем разрешено мягким пределом.
Излишне говорить, что мягкое ограничение — это то, что может привести к проблемам с безопасностью.
ВАЖНО: Ключ к тому, чтобы стать продвинутым пользователем Linux, — это использовать больше командной строки и меньше графического интерфейса; больше клавиатуры и меньше мыши!
Проверьте ограничения на открытие файлов в Linux
Чтобы просмотреть жесткое ограничение файлов, запустите:
ulimit -Hn
Точно так же для просмотра мягкого ограничения запустите:
ulimit -Sn
Здесь ‘S‘ и ‘H‘ обозначают мягкие и жесткие ограничения соответственно, тогда как ‘n‘ обозначает количество открытых файлов.
Изменить ограничения на открытие файлов в Linux
Давайте теперь попробуем изменить эти ограничения, просто добавив третий аргумент для нового значения ограничения после ‘Sn’ или ‘Hn’.
ulimit -Sn 5000 ulimit -Hn 5000

Однако измененные таким образом ограничения остаются временно измененными до открытия сеанса (т.е. терминала). Следуйте инструкциям ниже, чтобы навсегда изменить пределы.
Постоянная установка ограничений на открытие файлов в Linux
Откройте файл /etc/security/limits.conf в nano или любом другом редакторе по вашему выбору. Обратите внимание, что это файл, защищенный от записи, и его следует открывать с помощью sudo или от имени администратора.
sudo nano /etc/security/limits.conf
Обратите внимание, что ограничения могут быть установлены для всех пользователей или для отдельных пользователей. Синтаксис для установки жесткого ограничения:
*hard nofile 5000
‘*’Означает «предел»(лимит) для всех пользователей. Вторая строка в строке – это тип ограничения, в данном случае «жесткое»
Третья строка — это предел, который мы хотим изменить. В нашем случае это nofile, то есть количество файлов. Также здесь могут быть установлены другие ограничения, например, noproc для ряда процессов. Наконец, четвертая строка — это новый лимит, который должен быть установлен для количества файлов.
Если вы хотите установить лимит только для определенного пользователя, вы можете сделать это следующим образом:
abhi soft nofile 5000
Здесь «abhi» — имя пользователя.
Теперь мы добавим эти строки в файл, а затем посмотрим, изменилось ли ограничение.

Сохраните и выйдите из файла.
Эти ограничения потребуют от пользователя выхода и повторного входа в систему, так как старые ограничения все еще учитываются запущенными программами. Снова запустите ulimit, чтобы убедиться, что ограничения действительно изменены.
ulimit
Заключение
В этой статье мы увидели, как изменить ограничение на количество открытых файлов в Linux. Запустите, ‘ulimit –help’ если хотите узнать команду более подробно.
Спасибо за чтение и дайте нам знать свои мысли или вопросы в комментариях ниже!
Автор статьи NiceW
А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X