php-fpm не генерирует файлы дампа ядра, несмотря на то, что настроен на

php-fpm не генерирует файлы дампа ядра, несмотря на то, что настроен на

Я использую Centos 7 с php-fpm 5.4. Я обнаружил ошибку SIGSEGV (сигнал 11) в моих журналах ошибок php-fpm и хочу ее отладить.

Я последовал советуphp5 fpm: как сгенерировать дамп ядра из segfault?но php-fpm все еще даже не пытается генерировать дампы ядра. Из журнала ошибок php-fpm:

WARNING: [pool website.com] child 26953 exited on signal 11 (SIGSEGV) after 0.931337 seconds from start

Если бы был сгенерирован дамп ядра, он бы считывался, (SEGSEGV - core dumped)но этого не происходит.

решение1

У меня тоже были проблемы с этим. Похоже, что на centos главный php-fpmпроцесс запускается с привилегиями root, который затем запускает отдельные пулы с пониженными привилегиями (пользователь php-fpmна centos по умолчанию).

Для меня, и, как я подозреваю, для вас тоже, камнем преткновения является то, что если процесс изменил свои собственные привилегии выполнения, ему не разрешается создавать файл дампа ядра, если только /proc/sys/fs/suid_dumpableэто не разрешено. См. информацию об этом элементе управления на уровне ядраздесь.

решение2

Мне удалось решить эту проблему следующим образом:

  1. Добавлено в файл /etc/systemd/system.conf:

DefaultLimitCORE=infinity

  1. Изменен kernel.core_pattern:

sysctl kernel.core_pattern='| /usr/lib/systemd/systemd-coredump %p %u %g %s %t %c %e'

  1. Перезагрузил конфигурацию systemd:

systemctl daemon-reload

В качестве дополнительного шага для php-fpm необходимо установить следующую директиву в отдельных файлах пула php-fpm, которые вы хотите отслеживать:

rlimit_core = неограниченно

Каталог по умолчанию для программы systemd-coredump — , /var/lib/systemd/coredumpпоэтому вы должны увидеть файлы дампа, созданные здесь.

решение3

PHP-FPM switcher user перед запуском пулов. Поэтому мне пришлось изменить fs.suid_dumpableна 1, как указано на

https://itnext.io/linux-processes-core-dumps-systemd-coredump-and-debian-cf2ddb11ef9e

sysctl -w fs.suid_dumpable=1

Связанный контент