Um den Speicherort von Core-Dumps in CentOS 6 festzulegen, können Sie /etc/sysctl.conf
bearbeiten . Zum Beispiel, wenn Sie Core-Dumps in /var/crash
möchten :
kernel.core_pattern = /var/crash/core-%e-%s-%u-%g-%p-%t
Wobei Variablen sind:
%e ist der Dateiname
%g ist die GID, unter der der Prozess ausgeführt wurde
%p ist die PID des Prozesses
%s ist das Signal, das den Dump verursacht hat
%t ist die Zeit, zu der der Dump aufgetreten ist
%u ist die UID, unter der der Prozess ausgeführt wurde
Außerdem müssen Sie /etc/sysconfig/init
hinzufügen
DAEMON_COREFILE_LIMIT='unlimited'
Wenden Sie jetzt neue Änderungen an:
$ sysctl -p
Aber es gibt eine Einschränkung auf diese Weise. Wenn der Kernel-Parameter kernel.core_pattern immer zurückgesetzt und beim Neustart auf die folgende Konfiguration überschrieben wird, auch wenn ein Wert manuell in /etc/sysctl.conf
angegeben wird :
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Kurz gesagt, wenn abrtd.service
beginnt kernel.core_pattern
wird automatisch vom installierten System abrt-addon-ccpp
überschrieben . Es gibt zwei Möglichkeiten, dies zu beheben:
-
Einstellung
DumpLocation
Option im/etc/abrt/abrt.conf
Konfigurationsdatei. Das Zielverzeichnis kann durch Setzen von DumpLocation =/var/crash
angegeben werden im/etc/abrt/abrt.conf
Konfigurationsdatei undsysctl kernel.core_pattern
Der angezeigte Wert von ist derselbe, aber tatsächlich wird die Kerndatei im Verzeichnis unter/var/crash
erstellt .Auch wenn Sie SELinux aktiviert haben, müssen Sie Folgendes ausführen:
$ semanage fcontext -a -t public_content_rw_t "/var/crash(/.*)?" $ setsebool -P abrt_anon_write 1
Und schließlich starten Sie
abrtd.service
neu :$ service abrtd.service restart
-
Stoppen Sie den abrtd-Dienst.
kernel.core_pattern
werden nicht überschrieben. - (Habe ich nie getestet).