Wie bekomme ich einen Apache Core Dump?

8

Ich habe Probleme mit meinem 14.10 Ubuntu Server. Nach dem Ausführen bestimmter Aktionen wird mein Apache2 mit einem Segmentierungsfehler neu gestartet. Um dieses Problem zu beheben, möchte ich einen Core-Dump erstellen. Ich habe folgendes getan:

  • CoreDumpDirectory /tmp/apache-coredumpszur Konfigurationsdatei hinzugefügt
  • Lauf ulimit -c unlimited
  • Lauf apt-get install apache2-dbg php5-dbg
  • neu gestartet apacheund den Fehler verursacht. Das Protokoll behauptet, dass sich möglicherweise ein Core-Dump im Verzeichnis befindet, der jedoch leer ist.

Ich habe auch versucht, gdb direkt auf der ausführbaren Datei von apache2 zu verwenden, aber Apache wird erst gestartet, wenn es über apachectloder gestartet wurde service apache2 start.

Wie kann ich einen Core-Dump zum Debuggen meines Problems erhalten oder wie kann ich gdbdirekt an Apache anhängen ?

Andreas Hartmann
quelle
Für die ersteren schauen Sie hier: serverfault.com/questions/470407/… für die letzteren hier: httpd.apache.org/dev/debugging.html#gdb
Elder Geek
Leider hat das nicht funktioniert. Ich habe versucht, die Berechtigungen wie im ersten Link vorgeschlagen festzulegen, aber es wird immer noch kein Kern ausgegeben. Ich kannte bereits den zweiten Link. Es beantwortet meine Frage nicht wirklich auf Ubuntu-spezifische Weise (Ubuntu hat keine ausführbare httpd-Datei, und der direkte Aufruf von apache2 funktioniert aus den zuvor genannten Gründen nicht).
Andreas Hartmann
Ist der Coredump stattdessen vielleicht in / tmp?
Elder Geek
Ich habe den Core-Dump angegeben, der in einem anderen Ordner abgelegt werden soll, also nicht in / tmp.
Andreas Hartmann
Ich möchte Apport nicht verwenden, ich möchte mein Problem lokal untersuchen und keinen Fehler melden, da es wahrscheinlich kein Apache-Fehler ist.
Andreas Hartmann

Antworten:

4

ulimit -c unlimited wirkt sich nur auf Ihre aktuelle Shell aus.

Sie können dies anhand der Ausgabe bestätigen cat /proc/$(pidof -s apache2).

Ich habe ulimit -c unlimitedzu /etc/default/apache2und jetzt cat /proc/$(pidof -s apache2)/limitsumfasst

Max core file size        unlimited            unlimited            bytes
Jay _silly_evarlast_ Wren
quelle
Ich habe es versucht, aber es hat Apache (12 LTS) immer noch nicht dazu gebracht, den Kern zu sichern. Irgendwelche Gedanken?
Josip Rodin
Die Antwort gefunden - Apport wurde in aktiviert /etc/default/apportund das Kernel-Core-Dump-Muster wurde an seine Bedürfnisse angepasst . Siehe serverfault.com/questions/470407/…
Josip Rodin
echo '/tmp/apache-coredumps/core-%e.%p'> / proc / sys / kernel / core_pattern
Rudger