Enabling Core Files: Difference between revisions

(New page: Enabling core files on Linux varies slightly based on kernel revision and distributor. The primary parts are to enable core dumps via sysctl settings. The parameters are: kernel.core_us...)
 
No edit summary
Line 18: Line 18:
These parameters should be set in /etc/sysctl.conf, and in addition, they can be modified by using /sbin/sysctl -e <parm>=<value> so that a reboot is not necessary (although some OSes require a reboot, see below).
These parameters should be set in /etc/sysctl.conf, and in addition, they can be modified by using /sbin/sysctl -e <parm>=<value> so that a reboot is not necessary (although some OSes require a reboot, see below).


------ REDHAT derivative OSes only ------
------ REDHAT derivative OSes only


RedHat derivative OSes (RHEL4, RHEL5, F7, CentOS) also need to have a modification made to the startup scripts.  By default, those OSes hard set the coresize to zero in /etc/profile.  To fix this, you need to find the following line in /etc/profile:
RedHat derivative OSes (RHEL4, RHEL5, F7, CentOS) also need to have a modification made to the startup scripts.  By default, those OSes hard set the coresize to zero in /etc/profile.  To fix this, you need to find the following line in /etc/profile:

Revision as of 03:00, 17 June 2009

Enabling core files on Linux varies slightly based on kernel revision and distributor. The primary parts are to enable core dumps via sysctl settings. The parameters are:

kernel.core_uses_pid=1

This appends the PID to the generated core file, allowing multiple core dumps.

kernel.suid_dumpable=2 fs.suid_dumpable=2

Depending on the kernel release, one of these two must be set to two. Older 2.6 kernels use the kernel.suid_dumpable parameter (RHEL4, CentOS4, SLES10, OpenSuSE 10.2). Newer ones use fs.suid_dumpable (RHEL5, CentOS5, F7, DEBIAN4.0, UBUNTU6, UBUNTU8). What this parameter does is allow binaries that are setuid (like slapd) to drop core.

Optional (but useful):

kernel.core_pattern=/tmp/core

This would cause all core files to get created in /tmp. Obviously, this can be changed to any other directory as well. The default is kernel.core_pattern=core, which means it gets created in whatever the current working directory was at the time the process started, which is less useful, as that could be anywhere on the system.

These parameters should be set in /etc/sysctl.conf, and in addition, they can be modified by using /sbin/sysctl -e <parm>=<value> so that a reboot is not necessary (although some OSes require a reboot, see below).


REDHAT derivative OSes only

RedHat derivative OSes (RHEL4, RHEL5, F7, CentOS) also need to have a modification made to the startup scripts. By default, those OSes hard set the coresize to zero in /etc/profile. To fix this, you need to find the following line in /etc/profile:

ulimit -S -c 0 > /dev/null 2>&1

and change it to

ulimit -S -c unlimited > /dev/null 2>&1

and then reboot the system.

Jump to: navigation, search