본문 바로가기

도구의발견

Ubuntu core dump 셋팅

limits.conf 파일 수정

$ sudo vi /etc/security/limits.conf

/etc/security/limits.conf 파일에 아래 두 줄을 추가

kukuta soft core unlimited
kukuta hard core unlimited

위에서 kukuta는 계정명이다. 각자가 사용하는 계정을 적어 주면 된다. 위와 같이하면 프로세스가 예기치 않게 죽을시 코어 덤프를 남기고 죽게 된다.

코어 덤프 pattern 수정

/etc/sysctl.conf 파일에 아래 내용을 등록해 준다.

kernel.core_pattern = core.%e.%p.%t

처음은 단순 core라고만 적혀 있다. 아래를 참고하여 각자가 원하는 형태로 바꾸도록 한다.

%p: pid
%: '%' is dropped
%%: output one '%'
%u: uid
%g: gid
%s: signal number
%t: UNIX time of dump
%h: hostname
%e: executable filename
%: both are dropped

파일을 저장하고 변경 사항을 로드하기 위해 아래와 같이 입력한다.

$ sudo sysctl -p

테스트

$ kill -s SIGSEGV $$

위와 같이 했을때 코어 덤프가 정상적으로 남으면 성공한 것이다.

부록 1. Troubleshooting sysctl

$ sysctl -p
sysctl: cannot stat /proc/sys/kernel/core_pattern: No such file or directory

wsl에서는 위 코어 덤프 셋팅이 안된다. 알려진 버그다.

부록 2. 같이 읽으면 좋은 글

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!