강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

ulimit으로 core파일 크기제한 및 생성되지 않도록 설정하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

ulimit으로 core파일 크기제한 및 생성되지 않도록 설정하기





 

코어(core)파일이란 실행된 프로세스나 프로그램이 충돌할 때에 발생하는 메모리의 실제내용을 덤프(dump)한 자동 생성 파일입니다.  

 

 

 

 , 이 파일에는 문제가 발생한 시스템의 메모리내용이 그대로 저장되어 있기 때문에 전문 SE(System Engineer)들은 시스템의 이상원인을 밝혀내기 위하여 core파일을 분석합니다.  

 

 

 

 따라서 시스템관리자는 이런 코어파일에 대한 다음과 같은 설정을 할 수 있어야 합니다.  

 

 

 

 

 

(SHELL)과 사용자의 프로세스에 대한 시스템 자원사용을 제한하는 ulimit명령어 사용시에 -c옵션을 사용하면 코어파일(core file)의 최대 크기(size)를 제한하거나 아예 코어파일이 생성되지 않게 설정 할 수 있습니다.  

 

 

 

 

 

코어파일의 크기 제한하기

 

다음은 코어파일(core file)의 최대 크기를 1,000,000블록(block)으로 제한하고 제한된 사항을 확인한 예입니다.  

 

 

 

 

 

[root@su250 home]# ulimit -c 1000000

[root@su250 home]#

[root@su250 home]# ulimit -a

core file size          (blocks, -c) 1000000

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 16384

max locked memory       (kbytes, -l) 32

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 10240

cpu time               (seconds, -t) unlimited

max user processes              (-u) 1024

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

[root@su250 home]#

 

위의 “ulimit -a”의 결과에서 “core file size”의 값을 확인하시기 바랍니다.  

 

 

 

 

 

코어파일 생성되지 않도록 설정하기

 

이번에는 이런 코어파일이 아예 생성되지 않도록 하는 방법입니다.  

 

 

 

 모든 계정들은 로그인할 때에 자기자신의 홈디렉토리내에 있는 .bash_profile파일을 읽어서 자기자신만의 시스템 사용환경을 설정합니다.  

 

 

 

 이 때에 다음과 같은 설정을 해두면 해당 사용자는 코어(core)파일을 생성하지 못하게 됩니다.  

 

 

 

 

 

[root@su250 ~]# cat /root/.bash_profile

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

 

# User specific environment and startup programs

 

PATH=$PATH:$HOME/bin

 

export PATH

unset USERNAME

 

ulimit -c 0

[root@su250 ~]#

 

위의 예는 root사용자의 홈디렉토리에 있는 .bash_profile의 내용입니다.  

 

 

 

 내용을 보시면 마지막 행에 “ulimit -c 0”이라는 설정이 있습니다.  

 

 

 

 그러면 root사용자가 로그인할 때마다 실행되어 이를 적용하게 됩니다.  

 

 

 

 다음은 root사용자가 시스템에 로그인하여 “limit -a”를 실행한 결과입니다.  

 

 

 

 

 

[root@su250 ~]# ulimit -a

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 16384

max locked memory       (kbytes, -l) 32

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 10240

cpu time               (seconds, -t) unlimited

max user processes              (-u) 1024

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

[root@su250 ~]#

 

위의 결과를 보시면 core file size의 크기로 0이 설정되어 있습니다.  

 

 

 

 이것은 해당 사용자의 코어파일 생성크기가 0이라는 의미이며, 이는 코어파일을 생성하지 못한다는 의미입니다.  

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  78 명