Процесс Openfire не соответствует значению ulimit nofiles в limit.conf

У меня есть следующие значения, установленные в моем

/etc/security/limits.conf

*          hard    nofile   1048576
*          soft    nofile   1048576
openfire   hard    nofile   1048576
openfire   soft    nofile   1048576

Я ожидаю, что процесс openfire установит такое же значение. Но когда я делаю кот PID openfire. Он показывает только значение «Максимальное количество открытых файлов» равное 4096.

кошка /proc/178747/лимиты

Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             255821               255821               processes
Max open files            4096                 4096                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       255821               255821               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

Как я могу настроить свою машину (Centos 7), чтобы процесс Openfire следовал значению, установленному в limit.conf


person jeffsia    schedule 07.10.2016    source источник
comment
Обратите внимание, что первый столбец в limits.conf обычно представляет собой имя пользователя или имя группы, а не имя процесса. Таким образом, если ваш процесс openfire не запущен под пользователем или группой с именем openfire, эти ограничения не будут применяться...   -  person twalberg    schedule 14.10.2016


Ответы (2)


CentOS7 использует systemd, который устанавливает свои собственные ограничения.

Добавление LimitNOFILE=65536 в раздел [Service] /etc/systemd/system/openfire.service, а затем перезапуск службы должно помочь.

Предыстория: Systemd игнорирует конфигурацию в limit.conf.

  1. По умолчанию есть макс. количество открытых файлов, которое составляет 4096 в старых системах и 64 КБ в новых системах. Все «юниты», не изменяющие ограничения явно, наследуют это.

  2. Это значение по умолчанию можно перезаписать в /etc/systemd/system.conf, опция "DefaultLimitNOFILE="

  3. Для «единицы» это можно настроить в файле определения единицы (см. выше).
person Hubert    schedule 11.08.2018

Изменение /etc/security/limits.conf удобно при перезагрузке системы, для текущего состояния вы должны выполнить «ulimit -n 1048576» на терминале, а затем перезапустить службу openfire и проверить. Это будет применяться немедленно.

person Shoaib Ahmad Gondal    schedule 14.10.2016