Сторожевой таймер (Watchdog timer) — аппаратно реализованная схема контроля над зависанием системы. Представляет собой таймер, который периодически сбрасывается контролируемой системой. Если сброса не произошло в течение некоторого интервала времени, происходит принудительная перезагрузка системы. В некоторых случаях сторожевой таймер может посылать системе сигнал на перезагрузку («мягкая» перезагрузка), в других же — перезагрузка происходит аппаратно (замыканием сигнального провода RST или подобного ему).

Установка в Linux Ubuntu/Debian:

sudo apt-get install watchdog  

Список некоторых файлов которые будут установлены в систему:

  • /etc/init.d/watchdog
  • /etc/init.d/wd_keepalive
  • /etc/watchdog.conf
  • /etc/default/watchdog
  • /dev/watchdog
  • /usr/sbin/watchdog
  • /usr/sbin/wd_identify
  • /usr/sbin/wd_keepalive
  • /usr/share/doc/watchdog/
  • /usr/share/man/man5/watchdog.conf.5.gz
  • /usr/share/man/man8/watchdog.8.gz
  • /usr/share/man/man8/wd_identify.8.gz
  • /usr/share/man/man8/wd_keepalive.8.gz

Возможные параметры конфига /etc/watchdog.conf:

interval =  

Интервал между двумя операциями записи в watchdog устройство. Значение по умолчанию составляет 10 секунд. Интервал больше минуты может быть использованы только параметром -f из командной строки.

logtick =  

Если пишутся логи, можно пропускать запись событий каждое указанно количество интервалов. Например если logtick = 60 и interval 10, получится 600 секунд, то есть в логируемый файл будет добавляться запись не чаще одного раза в 10 минут.

max-load-1 =  

Максимально разрешенное значение загрузки системы за 1 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

max-load-5 =  

Максимально разрешенное значение загрузки системы за 5 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

max-load-15 =  

Максимально разрешенное значение загрузки системы за 15 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

min-memory =  

Установка минимального количества виртуальной памяти которое должно быть свободно. 0 — проверка отключено.

max-temperature =  

Установка максимально разрешенной температуры.

watchdog-device =  

Установка имени устройства.

temperature-device =  

Установка имени устройства температуры.

file =  

Файловый режим, проверка файлов.

change =  

Интервал времени для файлового режима.

pidfile =  

Имя pid файла. Можно добавить отслеживаемый процесс, например «pidfile = /var/run/apache2.pid». В случае невозможности запуска процесса watchdog будет постоянно перезагружать систему.

ping =  

Режим пинга, для проверки сетевых соединений. Опция может быть использована более одного раза.

interface =  

Установка имени сетевого интерфейса.

test-binary =  

Выполнение пользовательского теста.

test-timeout =  

Тест может выполняться указанное количество секунд. 0 — неограничено.

repair-binary =  

Выполняется при невозможности перезагрузки системы.

admin =  

Адрес email для уведомлений, можно оставить значение пустым для отключения.

realtime =  

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

priority =  

Установка приоритета для режима realtime.

Пример настройки с Intel TCO Watchog Timer.
Загрузка модуля:

sudo modprobe iTCO_wdt  

В /etc/watchdog.conf должно быть раскоментировано/добавлено:

watchdog-device    = /dev/watchdog  
interval = 10  

В /etc/default/watchdog указать имя модуля:

watchdog_module="iTCO_wdt"  

Можно добавить опцию отладки чтобы в syslog журнал писалась отладочная информация:

watchdog_options="-v"  

Перезапуск watchdog:

sudo /etc/init.d/watchdog restart  

Мониторить в реальном времени записи syslog можно командой:

tail -f /var/log/syslog  
Обновлено 30 июля 2018 г.