Сторожевой таймер (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