core 덤프는 프로세스가 문제가 발생하여 죽었을 때 분석을 할 수 있는 유용한 자료입니다.


core dump가 생성될 수 있도록 설정하는 법에 대해서 알아보겠습니다.


우선 ulimit -c 로 현재 시스템에 core dump의 허용 사이즈를 알아봅니다.

만약 0으로 설정되어있으면 프로세스가 강제 종료되어도 core 덤프 파일이 생성되지 않습니다.


이것을 


ulimit -c unlimited


로 변경하면 무제한으로 core 파일이 생성됩니다.


보통 core 덤프 파일은 프로세스를 실행한 디렉토리에 생성이 됩니다.

이것을 특정 디렉토리에 모으고, 이름에 규칙을 부여해보도록 하겠습니다.


cat /proc/sys/kernel/core_pattern


명령을 수행하면 core 라고 나올 것입니다. 모든 core 덤프 파일은 core로 저장이 됩니다.

이렇게 되면 overwrite가 되어서 여러개의 프로세스가 동시에 죽었을 경우 분석이 하나만 가능하겠죠


echo /var/core/core.%e > /proc/sys/kernel/core_pattern


위와 같이 명령을 사용하여 /var/core 디렉토리 밑에 core.<프로세스 이름>으로 이름 규칙을 설정했습니다.


더 많은 %변수는 아래와 같습니다.


%%  A single % character
%p  PID of dumped process 
%u  real UID of dumped process 
%g  real GID of dumped process 
%s  number of signal causing dump
%t  time of dump (seconds since 0:00h, 1 Jan 1970)
%h  hostname (same as ’nodename’ returned by uname(2))
%e  executable filename