Bagaimana cara mendapatkan dump inti apache?

8

Saya mengalami masalah dengan Server Ubuntu 14.10 saya. Setelah melakukan tindakan tertentu apache2 saya restart dengan kesalahan kesalahan segmentasi. Untuk men-debug masalah ini, saya ingin membuat dump inti. Saya telah melakukan yang berikut:

  • ditambahkan CoreDumpDirectory /tmp/apache-coredumpske file konfigurasi
  • Lari ulimit -c unlimited
  • Lari apt-get install apache2-dbg php5-dbg
  • restart apachedan menyebabkan kesalahan. Log mengklaim mungkin ada dump inti di direktori, namun kosong.

Saya juga mencoba menggunakan gdb langsung pada executable apache2, tetapi apache tidak akan mulai kecuali dimulai melalui apachectlatau service apache2 start.

Bagaimana saya bisa mendapatkan dump inti untuk men-debug masalah saya ATAU bagaimana saya bisa melampirkan gdblangsung ke apache?

Andreas Hartmann
sumber
Untuk yang pertama, lihat di sini: serverfault.com/questions/470407/… untuk yang terakhir, di sini: httpd.apache.org/dev/debugging.html#gdb
Penatua Geek
Sayangnya, ini tidak berhasil. Saya mencoba mengatur izin seperti yang disarankan di tautan pertama, namun tetap tidak ada inti yang dibuang. Saya sudah tahu tautan kedua. Itu tidak benar-benar menjawab pertanyaan saya dengan cara spesifik ubuntu (Ubuntu tidak memiliki executable httpd, dan memanggil apache2 secara langsung tidak berfungsi karena alasan yang disebutkan sebelumnya).
Andreas Hartmann
Apakah mungkin coredump di / tmp?
Penatua Geek
Saya menentukan dump inti untuk ditempatkan di folder yang berbeda, jadi itu bukan di / tmp.
Andreas Hartmann
Saya tidak ingin menggunakan apport, saya ingin memeriksa masalah saya secara lokal dan tidak melaporkan kesalahan, karena itu mungkin bukan bug apache.
Andreas Hartmann

Jawaban:

4

ulimit -c unlimited hanya memengaruhi shell Anda saat ini.

Anda dapat mengkonfirmasi ini dengan melihat output cat /proc/$(pidof -s apache2).

Saya menambahkan ulimit -c unlimitedke /etc/default/apache2dan sekarang cat /proc/$(pidof -s apache2)/limitstermasuk

Max core file size        unlimited            unlimited            bytes
Jay _silly_evarlast_ Gelatik
sumber
Saya mencoba ini tetapi masih tidak mendapatkan Apache (12 LTS) untuk membuang inti. Adakah pikiran?
Josip Rodin
Ditemukan jawabannya - apport diaktifkan /etc/default/apport, dan itu mengubah pola dump inti kernel sesuai dengan dirinya sendiri. Lihat serverfault.com/questions/470407/…
Josip Rodin
echo '/tmp/apache-coredumps/core-%e.%p'> / proc / sys / kernel / core_pattern
Rudger