#title RHEL 과 CentOS 에서 Coredump 를 남기기 위한 방법

[[TableOfContents]]

* 작성: 김정균

= 대상 =
 * RHEL 4 / CentOS 4.x
 * RHEL 5 / CentOS 5.x
 * RHEL 6 (미확인)

= 커널 설정 =
 * /etc/sysctl.conf 에
  '''''kernel.suid_dumpable = 1'''''

  '''''kernel.core_uses_pid = 1''''' (default 값임)

  '''''kernel.core_pattern = /tmp/core/core''''' 로 

 를 입력한 후에, '''sysctl -p''' 명령으로 커널 파라미터 수정을 반영한 다음
  {{{
mkdir -p /tmp/core
chmod 777 /tmp/core
}}}
  설정을 해 준다.

 * RHEL 5 / CentOS 5 에서 (kernel 2.6.18 이후..)
  '''''kernel.suid_dumpable = 1''''' 이
  '''''fs.suid_dumpable = 1''''' 으로 변경됨

= Shell에서의 coredump =
 * /etc/bashrc 의 26라인 즈음.. '''ulimit -S -c 0 > /dev/null 2>&1''' 설정에 의해 core 를 남길 수 없음
 * ~/.bashrc 에 '''ulimit -c unlimited >/dev/null 2>&1''' 를 넣어서 해결을 함. 수정 후, 재로그인이 필요함.
 * 현재 세션에서만 적용을 하고 싶다면 현재 세션에서 위의 명령을 그냥 실행하면 됨.


= init script =
  * /etc/sysconfig/init 에 '''DAEMON_COREFILE_LIMIT='unlimited'''' 을 설정해 줌
  * /etc/sysconfig/init 에 반영할 경우, init script 로 시작하는 모든 데몬이 반영이 되며, 만약 특정 데몬만 필요하다면, 각 init script 에서 {{{. /etc/init.d/functions}}} 를 호출하기 전에 위의 설정을 넣어 주면 됨.