그래서 RH 에서 coredump 를 남기기 위한 작업을 기술해 봅니다.
1. /etc/profile
대략 26라인 즈음에 보면
ulimit -S -c 0 > /dev/null 2>&1
이라는 설정으로 core 를 남기지 않도록 되어 있습니다. 암울 합니다. --;
ulimit -c unlimited >/dev/null 2>&1
와 같이 수정해 줍니다. 시스템 파일을 건드리고 싶지 않다면, ~/.bash_profile 이나 ~/.bashrc 에 설정 합니다.
2. /etc/sysctl.conf
커널 파라미터 역시 기본으로 core 를 남기지 않도록 되어 있습니다. /etc/sysctl.conf 에 아래 설정을 추가합니다.
kernel.suid_dumpable = 1
kernel.core_uses_pid = 1
설정을 한 후에, sysctl.conf 의 변경 사항을 커널에 반영합니다.
[root@www SPECS]# sysctl -p
여기까지는 시스템에서 기본적으로 coredump 를 남기도록 하는 겁니다.
RH 의 경우에는 한술 더 떠서, init script 로 실행하는 모든 데몬에 대해서 core 를 남기지 않도록 initscripts package 에서 관리하고 있습니다. 그러므로, /etc/init.d/httpd 를 실행했을 때 core
를 남기도록 하려면..
1. /etc/sysconfig/init
DAEMON_COREFILE_LIMIT='unlimited'
를 추가해 줍니다.
2. 위의 설정은 init script 로 실행된 모든 스크립트에 영향을 줍니다. 각 init script 에서 /etc/init.d/functions 를 호출하기 전에
DAEMON_COREFILE_LIMIT='unlimited'
를 넣어 주시면 반영이 됩니다.
참조: http://kbase.redhat.com/faq/FAQ_80_7935.shtm