Как проверить, активен ли сторожевой таймер ядра в Linux

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

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

Введение

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

Вы начнете с проверки статуса сторожевого таймера с использованием файловой системы /proc, затем убедитесь в его инициализации в буфере сообщений ядра с помощью команды dmesg и, наконец, изучите конфигурацию службы сторожевого таймера в директории /etc/systemd. Эти шаги дадут вам полное представление о том, как определить рабочее состояние сторожевого таймера ядра Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/ls -.-> lab-558727{{"Как проверить, активен ли сторожевой таймер ядра в Linux"}} linux/cat -.-> lab-558727{{"Как проверить, активен ли сторожевой таймер ядра в Linux"}} linux/grep -.-> lab-558727{{"Как проверить, активен ли сторожевой таймер ядра в Linux"}} end

Проверка статуса сторожевого таймера (watchdog) с помощью команды cat /proc/sys/kernel/watchdog

На этом этапе мы рассмотрим сторожевой таймер (watchdog) в Linux. Сторожевой таймер - это система, которая может автоматически перезагрузить компьютер, если он перестает отвечать. Это особенно важно для критически важных систем, где простои недопустимы.

Сторожевой таймер управляется параметром ядра. Мы можем проверить его статус, прочитав специальный файл в файловой системе /proc. Файловая система /proc - это виртуальная файловая система, которая предоставляет информацию о процессах и другой системной информации.

Мы будем использовать команду cat для чтения содержимого файла, который контролирует статус сторожевого таймера.

Введите следующую команду в терминале и нажмите Enter:

cat /proc/sys/kernel/watchdog

Результатом выполнения этой команды будет либо 0, либо 1.

  • 0: означает, что сторожевой таймер отключен.
  • 1: означает, что сторожевой таймер включен.

Вы должны увидеть вывод, похожий на следующий:

0

Это означает, что сторожевой таймер в текущей среде в данный момент отключен. Понимание статуса сторожевого таймера является первым шагом в его управлении.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка сторожевого таймера (watchdog) с помощью dmesg

На этом этапе мы рассмотрим буфер сообщений ядра с использованием команды dmesg. Команда dmesg отображает сообщения ядра, которые генерируются во время запуска и работы системы. Эти сообщения часто содержат информацию о обнаружении аппаратного обеспечения, загрузке драйверов и системных событиях, включая инициализацию сторожевого таймера (watchdog).

Мы будем использовать команду dmesg и передавать ее вывод в grep для фильтрации сообщений, связанных со сторожевым таймером. Конвейер (|) передает вывод одной команды на вход другой команде.

Введите следующую команду в терминале и нажмите Enter:

dmesg | grep -i watchdog

Разберем эту команду на составляющие:

  • dmesg: Отображает буфер сообщений ядра.
  • |: Оператор конвейера, который передает вывод команды dmesg в команду grep.
  • grep: Мощная утилита командной строки для поиска в текстовых данных строк, соответствующих регулярному выражению.
  • -i: Опция для команды grep, которая игнорирует регистр символов в шаблоне.
  • watchdog: Шаблон, который мы ищем в сообщениях ядра.

В выводе будут показаны все сообщения ядра, содержащие слово "watchdog", независимо от регистра. Если драйвер сторожевого таймера был загружен или инициализирован во время загрузки системы, вы, возможно, увидите вывод, похожий на следующий (точный вывод может отличаться в зависимости от системы):

[    0.XXX] Linux version X.X.X-XX-generic (...)
[    X.XXX] watchdog: initialized omap_wdt driver
[    X.XXX] watchdog: watchdog0: watchdog: activate

Если вы видите такой вывод, это означает, что ядро обнаружило и инициализировало устройство сторожевого таймера. Если вывода нет, это может означать, что драйвер сторожевого таймера не был загружен или отсутствует на этой системе.

Эта команда полезна для проверки того, знает ли ядро о устройстве сторожевого таймера и взаимодействует ли с ним.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка службы сторожевого таймера (watchdog) в /etc/systemd

На этом этапе мы будем искать конфигурационные файлы, связанные со службой сторожевого таймера (watchdog), в директории /etc/systemd. systemd - это система и менеджер служб для Linux, который часто управляет службами, такими как сторожевой таймер. Конфигурационные файлы для юнитов systemd (например, служб) обычно хранятся в /etc/systemd/system/.

Мы будем использовать команду ls для вывода списка файлов, а затем grep для поиска файлов, имена которых содержат слово "watchdog", в директории /etc/systemd/system/.

Введите следующую команду в терминале и нажмите Enter:

ls /etc/systemd/system/ | grep watchdog

Разберем эту команду на составляющие:

  • ls /etc/systemd/system/: Выводит список содержимого директории /etc/systemd/system/.
  • |: Оператор конвейера, который передает вывод команды ls в команду grep.
  • grep watchdog: Ищет строки, содержащие слово "watchdog".

Если служба сторожевого таймера настроена с использованием systemd, вы, возможно, увидите вывод, похожий на следующий:

watchdog.service

Это означает, что существует файл службы systemd с именем watchdog.service, который, вероятно, отвечает за управление сторожевым таймером. Наличие этого файла говорит о том, что функциональность сторожевого таймера может быть контролируемой и настраиваемой с помощью systemd.

Если вывода нет, это означает, что в этой директории нет файла службы systemd, явно именованного с использованием слова "watchdog". Это не обязательно означает, что сторожевой таймер не активен, но это показывает, что он не управляется стандартным файлом юнита службы сторожевого таймера systemd в этом месте.

Понимание того, где настроены службы сторожевого таймера, важно для управления их поведением.

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке мы научились проверять статус сторожевого таймера (watchdog) ядра в Linux. Мы начали с использования команды cat /proc/sys/kernel/watchdog для определения, включен ли сторожевой таймер или выключен. Мы увидели, что значение 0 означает, что он выключен, а значение 1 - что он включен.

После этого мы исследовали буфер сообщений ядра с помощью команды dmesg и передали вывод в grep -i watchdog для поиска сообщений, связанных со сторожевым таймером. Это позволяет получить информацию о его инициализации и статусе во время запуска системы.