Ich versuche, den Grund für den Absturz einer meiner Linux-Anwendungen herauszufinden. Aber ich weiß nicht, wohin der Kern geht.
cat /proc/sys/kernel/core_pattern
core.%e.%p
Irgendeine Idee?
Ich versuche, den Grund für den Absturz einer meiner Linux-Anwendungen herauszufinden. Aber ich weiß nicht, wohin der Kern geht.
cat /proc/sys/kernel/core_pattern
core.%e.%p
Irgendeine Idee?
Der Core-Dump wird zum Zeitpunkt des Absturzes in das aktuelle Verzeichnis des Prozesses geschrieben.
Natürlich müssen Core Dumps aktiviert sein, standardmäßig sind diese normalerweise deaktiviert. Überprüfen Sie die Ausgabe von ulimit -c
, wenn das 0 ist, dann wird keine Kerndatei geschrieben. Ausführen ulimit -c unlimited
, um Core-Dumps zu aktivieren. Dies ist eine Einstellung pro Prozess, die von Prozessen geerbt wird, die von diesem Prozess gestartet wurden.
Wenn ein Core-Dump hätte generiert werden sollen, Sie aber nicht wissen, wo sich der Prozess befindet, können Sie den Prozess erneut starten (wenn dies nicht der Fall ist, können Sie ihn sofort abstürzen lassen). Überprüfen Sie dann das Arbeitsverzeichnis, indem Sie angeben, ls -l /proc/$pid/cwd
wo $pid
sich die Prozess-ID des Prozesses befindet. Dieser Link verweist auf das aktuelle Arbeitsverzeichnis dieses Prozesses. Die Chancen stehen gut, dass der Core Dump da sein wird. Andernfalls müssen Sie find
auf dem gesamten System ausgeführt werden ...
Systeme, die systemd verwenden, sind normalerweise so konfiguriert, dass sie Kerne sichern
Sie können den
coredumpctl
Befehl verwenden, um Core-Dumps aufzulisten. Siehe auch no-more-coredumps-after-migrating-to-systemdquelle