Apache - как включить coredump и ошибка exit signal Segmentation fault
Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Ошибка в error логе Apache:
[Tue Dec 29 01:02:30 2015] [notice] child pid 1002876 exit signal Segmentation fault (11) [Tue Dec 29 01:02:33 2015] [notice] child pid 1002887 exit signal Segmentation fault (11) [Tue Dec 29 01:02:33 2015] [notice] child pid 1002889 exit signal Segmentation fault (11) [Tue Dec 29 01:02:34 2015] [notice] child pid 1001199 exit signal Segmentation fault (11) [Tue Dec 29 01:02:34 2015] [notice] child pid 1002888 exit signal Segmentation fault (11) [Tue Dec 29 01:08:21 2015] [notice] child pid 1002877 exit signal Segmentation fault (11)
Для анализа этой проблемы - нужно включить создание core файлов веб-сервером и произвести их дебаг утилитой gdb
1) Размер coredump файлов.
Чтобы инициировать создание файлов дампов безлимитных размеров размером запустите команду:
# ulimit -c unlimited
Изначально должно быть так:
# ulimit -c 0
Нулевой вывод команды означает, что файлы дампов не создаются.
2) Место куда складывать coredump-пы:
# echo "/tmp/httpd/httpd-core.%p" > /proc/sys/kernel/core_pattern
3) Разрешаем ядру создавать файл core в файловой системе.
# echo 2 > /proc/sys/fs/suid_dumpable
4) В конфиге Apache - httpd.conf добавляем:
CoreDumpDirectory /tmp/httpd
рестартим Apache и создаем эту директорию: # /etc/init.d/httpd restart && mkdir -p /tmp/httpd && chown apache:apache /tmp/httpd && chmod 0777 /tmp/httpd
5) Дебаг core файла через gdb:
# gdb /usr/sbin/httpd /tmp/httpd/httpd-core.823330
Links: