Linux 에서 커널 패닉 설정 활성 여부 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 커널 패닉 설정이 활성화되어 있는지 확인하는 방법을 배우게 됩니다. 이 랩은 sysctl 명령을 사용하여 치명적인 오류 발생 후 시스템의 동작을 결정하는 kernel.panic 설정을 검사하고 임시로 수정하는 과정을 안내합니다.

또한 /etc/sysctl.conf 파일을 검사하여 sysctl 구성을 확인하고, /proc/sys/kernel 디렉토리에서 커널 파라미터를 검사하여 이러한 설정이 시스템 동작에 어떻게 영향을 미치는지 살펴볼 것입니다.

sysctl kernel.panic 으로 패닉 설정 확인

이 단계에서는 sysctl 명령을 사용하여 커널의 패닉 설정을 확인하는 방법을 살펴봅니다. kernel.panic 설정은 패닉 발생 시 커널이 어떻게 동작할지 결정합니다. 커널 패닉은 시스템이 복구할 수 없는 치명적인 오류로, 종종 시스템 중단 또는 재부팅으로 이어집니다.

sysctl 명령은 런타임에 커널 파라미터를 읽고 수정하는 강력한 도구입니다. 이러한 파라미터는 시스템 동작의 다양한 측면을 제어합니다.

kernel.panic 설정의 현재 값을 확인하려면 터미널을 열고 다음 명령을 입력하십시오.

sysctl kernel.panic

이 명령은 kernel.panic 설정의 현재 값을 표시합니다. 다음과 유사한 출력을 볼 수 있습니다.

kernel.panic = 0

0은 커널 패닉 후 시스템이 자동으로 재부팅되지 않음을 나타냅니다. 값이 0보다 크면, 자동으로 재부팅되기 전 커널이 대기하는 시간을 초 단위로 나타냅니다.

이제 kernel.panic 값을 변경해 보겠습니다. 10 초로 설정하려면 sudo와 함께 다음 명령을 사용하십시오.

sudo sysctl kernel.panic=10

비밀번호를 묻는 메시지가 표시됩니다. 비밀번호를 입력하면 명령이 kernel.panic 값을 10 으로 설정합니다.

변경 사항이 성공적으로 적용되었는지 확인하려면 sysctl 명령을 다시 실행하십시오.

sysctl kernel.panic

이제 다음을 볼 수 있습니다.

kernel.panic = 10

이는 kernel.panic 설정이 성공적으로 수정되었음을 확인합니다.

sysctl로 변경한 사항은 임시적이며 재부팅 후 손실된다는 점에 유의해야 합니다. 변경 사항을 영구적으로 적용하려면 다음 단계에서 다룰 /etc/sysctl.conf 파일을 수정해야 합니다.

cat /etc/sysctl.conf로 sysctl 설정 확인

이전 단계에서는 sysctl 명령을 사용하여 kernel.panic 설정을 임시로 변경하는 방법을 배웠습니다. 그러나 이러한 변경 사항은 지속되지 않으며 재부팅 후 손실됩니다. 변경 사항을 영구적으로 적용하려면 /etc/sysctl.conf 파일을 수정해야 합니다.

/etc/sysctl.conf 파일은 sysctl의 주요 구성 파일입니다. 여기에는 커널 파라미터 목록과 원하는 값이 포함되어 있습니다. 시스템이 시작될 때 이 파일을 읽고 지정된 설정을 적용합니다.

/etc/sysctl.conf 파일의 내용을 보려면 터미널을 열고 cat 명령을 사용하십시오.

cat /etc/sysctl.conf

이 명령은 파일의 내용을 표시합니다. 일부 주석 (‘#’으로 시작하는 줄) 과 기존 설정을 볼 수 있습니다.

## /etc/sysctl.conf - Configuration file for setting system variables
## See /etc/sysctl.d/ for additional system variables.
## See sysctl.conf (5) for more information.

이제 이 파일에 kernel.panic 설정을 추가해 보겠습니다. echo 명령을 사용하여 설정을 파일 끝에 추가합니다.

echo "kernel.panic = 10" | sudo tee -a /etc/sysctl.conf

다음은 명령에 대한 설명입니다.

  • echo "kernel.panic = 10": 이 부분은 파일에 추가하려는 텍스트를 생성합니다.
  • |: 파이프는 echo 명령의 출력을 가져와 tee 명령의 입력으로 보냅니다.
  • sudo tee -a /etc/sysctl.conf: tee 명령은 표준 입력을 읽어 표준 출력과 하나 이상의 파일에 씁니다.
    • sudo: 관리자 권한이 필요한 파일에 쓸 수 있도록 합니다.
    • -a: 텍스트를 덮어쓰는 대신 파일 끝에 추가합니다.
    • /etc/sysctl.conf: 수정하려는 파일입니다.

이 명령을 실행한 후 설정이 파일에 추가되었는지 확인해 보겠습니다. cat 명령을 다시 사용하십시오.

cat /etc/sysctl.conf

이제 파일 끝에 kernel.panic = 10 줄이 표시되어야 합니다.

## /etc/sysctl.conf - Configuration file for setting system variables
## See /etc/sysctl.d/ for additional system variables.
## See sysctl.conf (5) for more information.
kernel.panic = 10

변경 사항을 적용하려면 시스템을 재부팅하거나 다음 명령을 실행할 수 있습니다.

sudo sysctl -p

이 명령은 sysctl에게 /etc/sysctl.conf 파일을 읽고 설정을 적용하도록 지시합니다.

이제 kernel.panic 설정은 재부팅 후에도 지속됩니다.

/proc/sys/kernel 에서 커널 파라미터 검사

이 단계에서는 커널 파라미터를 확인하는 또 다른 방법인 /proc/sys/kernel 디렉토리를 살펴봅니다. 이 디렉토리는 커널 변수에 대한 가상 파일 시스템 인터페이스를 제공합니다. 이 디렉토리의 각 파일은 커널 파라미터를 나타냅니다.

/proc 디렉토리는 실행 중인 프로세스와 커널에 대한 정보를 제공하는 Linux 의 특수 디렉토리입니다. 이는 가상 파일 시스템으로, 내부에 있는 파일과 디렉토리가 실제로 디스크에 존재하지 않음을 의미합니다. 대신, 액세스할 때 커널에 의해 동적으로 생성됩니다.

/proc/sys/kernel 디렉토리의 파일을 나열하려면 터미널을 열고 ls 명령을 사용하십시오.

ls /proc/sys/kernel

이 명령은 각 커널 파라미터를 나타내는 파일 목록을 표시합니다. hostname, domainname, osrelease, version 등과 같은 파일을 볼 수 있습니다.

acpi_video_flags  ctrl-alt-del  dmesg               hostname       modules_disabled  osrelease  powersave-nap  pty  random  realtime-max-usleep  shmmax  shmall  shmmni  sysrq  tainted  threads-max  unknown_nmi_panic  version  yama

특정 커널 파라미터의 값을 보려면 해당 파일에 대해 cat 명령을 사용할 수 있습니다. 예를 들어, 시스템의 호스트 이름을 보려면 다음 명령을 사용하십시오.

cat /proc/sys/kernel/hostname

이렇게 하면 시스템의 현재 호스트 이름이 표시됩니다.

labex

마찬가지로 커널 버전을 보려면 다음 명령을 사용하십시오.

cat /proc/sys/kernel/osrelease

이렇게 하면 커널 버전이 표시됩니다.

5.15.0-76-generic

첫 번째 단계에서 보았듯이 sysctl 명령을 사용하여 이러한 파라미터를 볼 수도 있습니다. 예를 들어, 다음 명령은 cat /proc/sys/kernel/hostname과 동일합니다.

sysctl kernel.hostname

/proc/sys/kernel 디렉토리는 커널의 구성 및 상태에 대한 풍부한 정보를 제공합니다. 시스템 동작을 이해하고 모니터링해야 하는 시스템 관리자 및 개발자에게 유용한 리소스입니다.

이러한 파일을 볼 수 있지만 일반적으로 직접 수정하려면 루트 권한이 필요하다는 점에 유의해야 합니다. 그러나 sysctl은 보다 제어되고 일관된 인터페이스를 제공하므로 커널 파라미터를 수정하는 데 선호되는 방법입니다.

요약

이 Lab 에서는 sysctl 명령을 사용하여 Linux 에서 kernel.panic 설정을 확인하고 임시로 수정하는 방법을 살펴보았습니다. kernel.panic은 치명적인 오류가 발생했을 때 커널의 동작을 결정하며, 값 0 은 자동 재부팅 없음을 나타내고 0 보다 큰 값은 재부팅 전의 지연 시간 (초) 을 나타낸다는 것을 배웠습니다.

sysctl kernel.panic을 사용하여 현재 설정을 확인하고 sudo sysctl kernel.panic=10을 사용하여 임시로 변경했습니다. 또한 이 Lab 에서는 sysctl로 변경한 사항은 재부팅 시 지속되지 않으며 영구적인 구성을 위해서는 /etc/sysctl.conf 파일을 수정해야 한다는 점을 강조했습니다. 이는 후속 단계에서 다룰 예정입니다.