SystemdDoctor
LimitNOFILE= [Service]

LimitNOFILE= в systemd: предел открытых файлов службы

Задаёт предел открытых файловых дескрипторов для процессов службы. Дескрипторы расходуются и на файлы, и на сетевые соединения.

Что делает

Главное, что нужно знать: файл /etc/security/limits.conf на службы не действует. Он применяется при входе пользователя в систему, а служба запускается менеджером напрямую. Предел задаётся только в unit-файле — отсюда частая ситуация «я поднял лимит, а он не поднялся».

Значение можно задать одним числом (тогда мягкий и жёсткий предел совпадут) или парой через двоеточие. Программа видит мягкий предел, поэтому задавать только жёсткий бессмысленно.

Где ставится. В секции [Service]. Общее значение по умолчанию — DefaultLimitNOFILE= в system.conf.

Значения

ЗначениеЧто происходит
65535обычное значение для нагруженных служб.
1024:524288мягкий и жёсткий пределы по отдельности.
infinityочень большое число; часть программ при таком значении стартует долго.

Пример

Предел для веб-сервера под нагрузкой.

# systemctl edit nginx.service
[Service]
LimitNOFILE=65535

После правки нужны daemon-reload и перезапуск: на работающий процесс новый предел не действует.

Типичные ошибки

Настройки limits.conf на службы не влияют — только unit-файл.

Значение infinity на современных ядрах огромно: часть программ выделяет память по верхней границе и стартует медленно.

Перезагрузка настроек (reload) предел не меняет: нужен полный перезапуск службы.

Проверять надо не заданное, а действующее значение: cat /proc/PID/limits.

Связанные ошибки

  • Too many open files в журнале службыСлужба исчерпала лимит файловых дескрипторов. Как правильно поднять LimitNOFILE и когда дело в утечке.
  • status=205/LIMITS в systemdКод 205/LIMITS: systemd не смог применить ограничения ресурсов из Limit*=. Обычно значение недопустимо или превышает жёсткий предел.
  • nginx: worker_connections are not enoughnginx под нагрузкой: не хватает соединений на рабочий процесс. Как считать worker_connections вместе с LimitNOFILE.

Рядом стоящие параметры

Где важен на практике

Источники

  • systemd.exec(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026