본문 바로가기
IT/linux

kernel panic, 커널패닉 시 재부팅 설정

by 어느해겨울 2022. 1. 15.

kernel panic, 커널 패닉 시 재부팅 설정

 

시스템을 운영하다가 보다 나은 향상을 위해 커널 변수 설정을 변경하거나 혹은 하드웨어적인 문제, 사용하는 애플리케이션 충돌 등 기타 문제로 인해 패닉이 빈번하게 발생되는 경우가 있다.

 

분명한 건 발생원인 분석이 우선이겠지만 임시방편으로 사용하기 위해 커널 파라미터를 통해 패닉 발생 시 원하는 시간을 대기한 후 리부팅이 되는 방법을 알아보자.

 

커널 변수를 조정하기 위해서는 sysctl을 이용해 /proc/sys 리스트를 수정하면 된다.

※ 시스템에 따라서 sysctl.conf 구성이 다를 수 있다. 

vi /etc/sysctl.conf

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 1

# 패닉발생을 위한 임시대처로 추가해준 부분
kernel.panic = 3

 # Controls whether core dumps will append the PID to the core filename.
 # Useful for debugging multi-threaded applications.
 kernel.core_uses_pid = 1
/etc/sysctl.conf 파일을 실행해주고 난이후 즉시 적용을 하기위해 -p 옵션을 사용하면 현재 적용된 리스트들이 보인다.
sysctl -p

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 1
kernel.panic = 3     
kernel.core_uses_pid = 1

 

또는 쉘에서 바로 명령어를 입력해도 된다. 단, 재부팅 시 초기화된다.

echo 3 > /proc/sys/kernel/panic

기본 설정으로 설정값은 0이다. 커널 패닉 시 대응을 하지 않겠단 의미이다.

커널 패닉 파라미터의 단위는 초 단위로 적당히 지정해주면 된다.

 

끝.

 

 

댓글