У меня проблемы с моим сервером 10.10 Ubuntu. После выполнения определенных действий мой apache2 перезапускается с ошибкой сегментации. Для устранения этой проблемы я хотел бы создать дамп ядра. Я сделал следующее:
- добавлено
CoreDumpDirectory /tmp/apache-coredumps
в файл конфигурации - Запустить
ulimit -c unlimited
- Запустить
apt-get install apache2-dbg php5-dbg
- перезапустил
apache
и вызвал ошибку. Журнал утверждает, что в каталоге может быть дамп памяти, однако он пуст.
Я также пытался использовать gdb непосредственно в исполняемом файле apache2, но apache не запустится, если не запущен через apachectl
или service apache2 start
.
Как я могу получить дамп ядра для отладки моей проблемы ИЛИ как я могу подключиться gdb
напрямую к apache?
Ответы:
ulimit -c unlimited
влияет только на вашу текущую оболочку.Вы можете подтвердить это, посмотрев на вывод
cat /proc/$(pidof -s apache2)
.Я добавил
ulimit -c unlimited
к/etc/default/apache2
и теперьcat /proc/$(pidof -s apache2)/limits
включает в себяисточник
/etc/default/apport
, и он изменил шаблон дампа ядра ядра, чтобы удовлетворить себя. См. Serverfault.com/questions/470407/…