Как проверить, активна ли настройка kernel panic в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, активна ли настройка аварийного завершения ядра (kernel panic) в Linux. В рамках практического занятия вы научитесь использовать команду sysctl для проверки и временной модификации настройки kernel.panic, которая определяет поведение системы после критической ошибки.

Вы также узнаете, как проверить конфигурацию sysctl путем просмотра файла /etc/sysctl.conf и изучения параметров ядра в каталоге /proc/sys/kernel, чтобы понять, как эти настройки влияют на поведение системы.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/InputandOutputRedirectionGroup -.-> linux/tee("Output Multiplexing") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/echo -.-> lab-558866{{"Как проверить, активна ли настройка kernel panic в Linux"}} linux/ls -.-> lab-558866{{"Как проверить, активна ли настройка kernel panic в Linux"}} linux/cat -.-> lab-558866{{"Как проверить, активна ли настройка kernel panic в Linux"}} linux/tee -.-> lab-558866{{"Как проверить, активна ли настройка kernel panic в Linux"}} linux/service -.-> lab-558866{{"Как проверить, активна ли настройка kernel panic в Linux"}} linux/sudo -.-> lab-558866{{"Как проверить, активна ли настройка kernel panic в Linux"}} linux/env -.-> lab-558866{{"Как проверить, активна ли настройка kernel panic в Linux"}} end

Проверка настройки аварийного завершения ядра (kernel panic) с помощью sysctl

На этом этапе мы узнаем, как проверить настройку аварийного завершения ядра (kernel panic) с помощью команды sysctl. Настройка kernel.panic определяет, как ядро ведет себя при возникновении аварийной ситуации (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, что мы рассмотрим на следующем этапе.

Проверка конфигурации sysctl с помощью команды cat /etc/sysctl.conf

На предыдущем этапе мы узнали, как временно изменить настройку kernel.panic с помощью команды sysctl. Однако эти изменения не сохраняются и будут потеряны после перезагрузки системы. Чтобы сделать изменения постоянными, нам нужно изменить файл /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": Эта часть создает текст, который мы хотим добавить в файл.
  • |: Это конвейер (pipe), который берет вывод команды 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 предоставляет обширную информацию о конфигурации и состоянии ядра. Это ценный ресурс для системных администраторов и разработчиков, которые должны понимать и контролировать поведение системы.

Важно отметить, что хотя вы можете просматривать эти файлы, обычно вам нужны привилегии суперпользователя (root), чтобы напрямую изменять их. Однако использование sysctl является предпочтительным способом изменения параметров ядра, так как оно обеспечивает более контролируемый и согласованный интерфейс.

Резюме

В этом практическом занятии (лабораторной работе) мы изучили, как проверить и временно изменить настройку kernel.panic в Linux с помощью команды sysctl. Мы узнали, что параметр kernel.panic определяет поведение ядра при возникновении критических ошибок: значение 0 означает отсутствие автоматической перезагрузки, а значение больше 0 представляет задержку в секундах перед перезагрузкой.

Мы использовали команду sysctl kernel.panic для просмотра текущей настройки и sudo sysctl kernel.panic=10 для временного изменения ее значения. В рамках практического занятия также было подчеркнуто, что изменения, внесенные с помощью sysctl, не сохраняются при перезагрузке системы и для постоянной настройки требуется изменение файла /etc/sysctl.conf, что будет рассмотрено в последующих этапах.