Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Проекты
  3. Прочие проекты
  4. Сторожевой таймер (Watchdog)

Сторожевой таймер (Watchdog)

Запланировано Прикреплена Закрыта Перенесена Прочие проекты
1 Сообщения 1 Posters 126 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • нейробизонН Не в сети
    нейробизонН Не в сети
    нейробизон
    написал в отредактировано pi
    #1

    Screenshot from 2024-12-21 11-25-552_2.png
    Как автоматически перезагрузить зависшую Raspberry Pi без физического вмешательства?

    В процессорах Broadcom, используемых в Raspberry Pi, есть встроенный аппаратный сторожевой таймер (он же watchdog). Это специальный регистр, который отсчитывает время и сбрасывает устройство (перезагружает) при достижении предельного значения, если программное обеспечение не сбрасывает таймер.

    Работа со сторожевым таймером в Linux осуществляется через интерфейс /dev/watchdog.
    Когда приложение записывает данные в /dev/watchdog, оно «сбрасывает» таймер. Если запись не происходит в заданный интервал времени, система автоматически перезагружается.

    Настройка

    Чтобы активировать сторожевой таймер, редактируем конфиг:

    sudo nano /boot/config.txt
    

    и добавляем строку

    dtoverlay=watchdog
    

    Далее устанавливаем из репозитория службу watchdog:

    sudo apt install watchdog
    

    Редактируем конфиг службы watchdog:

    sudo nano /etc/watchdog.conf
    

    Добавляем (или раскоментируем) строки:

    watchdog-device = /dev/watchdog
    max-load-1 = 24
    

    max-load-1 - порог максимальной нагрузки системы за последнюю 1 минуту. (также можно использовать параметры max-load-5 и max-load-15, они задают порог нагрузки системы за 5 и 15 минут соответствия)
    Если она превысит значение 24, сторожевой таймер будет считать это критической ситуацией и выполнит действие, указанное в конфигурации (например, перезагрузит систему). На процессорах с 4 ядрами, число 24 означает 6-ти кратную перегрузку процессора (соответственно 100% загрузка будет иметь значение 4). Такое может произойти при нехватке ресурсов или зацикливании какого-либо процесса.

    Какие ещё тригеры для перезагрузки можно прописать в watchdog.conf?

    • min-memory=xxxx (в килобайтах): минимальное количество свободной оперативной памяти. Если её осталось меньше указанного значения (xxxx), watchdog перезагрузит систему.
    • file=путь_до_фала: проверка наличия определённого файла. Если файл будет отсутствовать, сторожевой таймер выполнит перезагрузку.
    • change = период_в_секундах - если файл изменился за данный период времени, то будет выполнена перезагрузка
    • ping=ip - если ip адрес, указанный в параметре ping не доступен, то будет выполнена перезагрузка
    • interface - указывает сетевой интерфейс, который должен быть активным.
    • pidfile - указывает файл PID процесса, который должен быть активным. Если процесс не работает, система будет перезагружена.
    • repair-binary - указывает путь к скрипту или программе, которая будет выполнена для попытки восстановления системы перед перезагрузкой.
    • test-binary - указывает путь к тестовому скрипту, который должен возвращать 0, если всё работает как надо.
    • reboot - указывает, следует ли перезагружать систему в случае сбоя. Возможные значения - yes(да) или no (нет)

    Добавляем службу в автозагрузку и запускаем:

    sudo systemctl enable watchdog
    sudo systemctl start watchdog
    

    Проверка

    Вызовем искусственную перегрузку системы командой

    sudo fork bomb
    

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

    1 ответ Последний ответ
    0
    • piP pi сослался на эту тему в

    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Login or register to search.
    • Первое сообщение
      Последнее сообщение
    0
    • Категории
    • Главная
    • Документация
    • Последние
    • Пользователи