¿Cómo obtener un volcado de núcleo de Apache?

8

Tengo problemas con mi servidor Ubuntu 14.10. Al realizar ciertas acciones, mi apache2 se reinicia con un error de segmentación. Para depurar este problema, me gustaría crear un volcado de memoria. He hecho lo siguiente:

  • agregado CoreDumpDirectory /tmp/apache-coredumpsal archivo de configuración
  • correr ulimit -c unlimited
  • correr apt-get install apache2-dbg php5-dbg
  • reiniciado apachey provocó el error. El registro afirma que puede haber un volcado del núcleo en el directorio, sin embargo, está vacío.

También intenté usar gdb directamente en el ejecutable de apache2, pero apache no se iniciará a menos que se inicie a través de apachectlo service apache2 start.

¿Cómo puedo obtener un volcado de núcleo para depurar mi problema O cómo puedo adjuntarlo gdbdirectamente a Apache?

Andreas Hartmann
fuente
Para el primero, mira aquí: serverfault.com/questions/470407/… para el último, aquí: httpd.apache.org/dev/debugging.html#gdb
Elder Geek
Lamentablemente, esto no funcionó. Intenté configurar los permisos como se sugiere en el primer enlace, sin embargo, todavía no se volcó ningún núcleo. Ya conocía el segundo enlace. Realmente no responde a mi pregunta de una manera específica de ubuntu (Ubuntu no tiene un ejecutable httpd, y llamar a apache2 directamente no funciona por las razones mencionadas anteriormente).
Andreas Hartmann
¿Es el coredump en / tmp en su lugar quizás?
Élder Geek
Especifiqué el volcado del núcleo para colocarlo en una carpeta diferente, por lo que no está en / tmp.
Andreas Hartmann
No quiero usar apport, quiero examinar mi problema localmente y no informar un error, porque probablemente no sea un error de Apache.
Andreas Hartmann el

Respuestas:

4

ulimit -c unlimited solo afecta tu caparazón actual.

Puede confirmar esto mirando la salida cat /proc/$(pidof -s apache2).

He añadido ulimit -c unlimiteda /etc/default/apache2y ahora cat /proc/$(pidof -s apache2)/limitsincluye

Max core file size        unlimited            unlimited            bytes
Jay _silly_evarlast_ Wren
fuente
Intenté esto pero todavía no conseguí que Apache (12 LTS) volcara el núcleo. ¿Alguna idea?
Josip Rodin
Encontré la respuesta: apport estaba habilitado /etc/default/apporty cambió el patrón de volcado del núcleo del núcleo para adaptarse a sí mismo. Ver serverfault.com/questions/470407/…
Josip Rodin el
echo '/tmp/apache-coredumps/core-%e.%p'> / proc / sys / kernel / core_pattern
Rudger