Доброго времени дня коллеги,
*И так как и обещал верное по всем правилам решение."Внесение собственных настроек (параметров) в службы запускаемые через сервис.На примере httpd Кто перешел на
Red Hat 7+ или
CentOS 7+ обратили внимание что сервисы httpd и другие теперь запускаются именно как сервисы а не скриптами старта, поэтому когда нам нужно внести изменения в ограничение размера стека для корректной работы системы и избежания ошибки
Размер стека и pcre.recursion_limit |
Параметр pcre.recursion_limit по умолчанию имеет значение 100000. Если он превышает системный размер стека (обычно 8 Мб), то PHP падает с ошибкой Segmentation fault при выполнении сложных регулярных выражений. |
Решается это теперь так на Red Hat 7+ и CentOS 7+ так:
не в коем случае не правим /usr/lib/systemd/system/httpd.service сперва создадим директорию:# mkdir /etc/systemd/system/httpd.service.d
|
Далее в ней создадим файл например ulimit.conf
Если нужно конкретно указать размер стека то запишем в него следующее
[Service]
LimitSTACK=10000000
# echo [Service] >/etc/systemd/system/httpd.service.d/override.conf
# echo LimitSTACK=10000000 >>/etc/systemd/system/httpd.service.d/override.conf
|
Возможен второй вариант - на версии 7.3 он работает команда сама создает каталог и файл остается ток внести в него данные:# systemctl edit имя сервиса
например
# systemctl edit httpd |
Если нужно указать без лимита - unlimited то так:
[Service]
LimitSTACK=infinity
# echo [Service] >/etc/systemd/system/httpd.service.d/override.conf
# echo LimitSTACK=infinity >>/etc/systemd/system/httpd.service.d/override.conf
|
Перегружаем демон и перезапускаем сервис:# systemctl daemon-reload
# systemctl restart httpd |
Тестируем: cat /proc/$(cat /run/httpd/httpd.pid)/limits |
Если у кого не стартует сервис смотрите логи аудита /var/log/audit возможно вы изменили стандартные директоррии файлов и необходимо дать разрешения selinux для них httpd, но это уже другая тема.
Если нужно еще снять какие ограничения на лимиты то изучаем:
Доступны директивы:
LimitCPU=
LimitFSIZE=
LimitDATA=
LimitSTACK=
LimitCORE=
LimitRSS=
LimitNOFILE=
LimitAS=
LimitNPROC=
LimitMEMLOCK=
LimitLOCKS=
LimitSIGPENDING=
LimitMSGQUEUE=
LimitNICE=
LimitRTPRIO=
LimitRTTIME= |
Также по аналогии работаем и с другими сервисами. например mysql - снимаем ограничение на лимит одновременно открытых файлов