ulimit으로 core파일 크기제한 및 생성되지 않도록 설정하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 5,187 조회
- 0 추천
- 목록
본문
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이라는 의미이며, 이는 코어파일을 생성하지 못한다는 의미입니다.
관련자료
-
이전
-
다음