Я следовал инструкциям из многих мест в Интернете о том, как получить дамп ядра от apache, когда он создает segfault, но он все еще отказывается генерировать дамп.
У меня есть:
- Добавил
CoreDumpDirectory
директиву вhttpd.conf
файл и установил его/tmp
- выполненный
ulimit -c unlimited
- Предоставлен шаблон для дампа с использованием
echo '/tmp/core-%e.%p' > /proc/sys/kernel/core_pattern
- Также побежал
echo 0 > /proc/sys/kernel/core_uses_pid
Httpd был перезапущен, но все еще не созданы дампы.
Я использую CentOS 5.8 x64 с httpd-2.2.3-65.el5.centos.3
иphp-5.3.20-13.el5.art
Любая помощь приветствуется!
httpd
segmentation-fault
dump
chrismcb
источник
источник
CoreDumpDirectory
для,/tmp/dumps
и он сбросил до/tmp
... теперь с отладкойОтветы:
Мой ответ таков:
Установите директиву следующим образом
CoreDumpDirectory /tmp/mycoredump
Создайте каталог:
mkdir -p /tmp/mycoredump
Присвоить право собственности на каталог www-data или httpd
chown -R www-data:www-data /tmp/mycoredump
Установите разрешения для:
chmod 777 /tmp/mycoredump
Перезапустите Apache:
service apache2 restart
источник
/tmp
все равно закончилось !chmod 777
чемуОбратите внимание, что если вы
PrivateTmp=true
установили в своей/usr/lib/systemd/system/apache2.service
(или как она называется в вашей системе), то есть Apache фактически ищет/tmp
что-то вроде этого/tmp/systemd-private-c27fc5b152d546159d675e170641529b-apache2.service-IcEt0m/
, Apache не сможет писать в этот каталог, и вы вообще не получите дамп памяти (из-за вsystemd
каталог tmp, имеющий 700 разрешений только для root).Решением является либо установка,
PrivateTmp=false
либо изменение разрешения каталога systemd tmp после запуска сервера.Я потратил часы на это, чтобы только сейчас, наконец, понять, в чем проблема.
источник