Аппаратный «watchdog» или незаменимый помощник в борьбе с зависанием
В одной компании было много терминалов, и одна из неблагодарных задач для техподдержки — ездить по точкам и перезапускать операционную систему внутри терминалов. Было решено бросить вызов этой проблеме в виде разработки аппаратного сторожевого таймера.
В итоге мы получили устройство, которое подключается к расширительному спаренному USB-разъему на материнской плате.

Данное устройство имеет следующие возможности:
- Имитация нажатия кнопок POWER и RESET;
- Управление питанием USB-устройством (при условии, что у него нет отдельного источника);
- Управление гальванически развязанной контактной группой (реле). Можно поставить в разрез цепи питания;
- Индикаторные светодиоды (одним можно управлять, второй показывает режимы работы).
Алгоритм работы прост: внутри находятся два настраиваемых таймера, которые постоянно отсчитывают заданное время, по истечению которого имитируется нажатие соответствующих кнопок (POWER и RESET). Чтобы предотвратить случайную перезагрузку, необходимо периодически послать команду сброса таймера.
Лучше, чтобы за процедуру сброса таймеров отвечало целевое приложение, а не стороннее или системное (Cron, служба расписаний) по причине того, что вероятность сбоя в системе меньше, чем в приложении (хотя, у кого как).
Обмен информацией аналогичен консольному.
| команда | Описание | Пример |
|---|---|---|
| help | Краткая справка по командам | help |
| LED1 | Управление светодиодом, по умолчанию выключен | LED1 ON LED1 OFF |
| RELAY | Управление реле, по умолчанию включено | RELAY ON RELAY OFF |
| KEY1 | Имитация нажатия кнопки 1, по умолчанию не нажата | KEY1 ON KEY1 OFF |
| KEY2 | Имитация нажатия кнопки 2, по умолчанию не нажата | KEY2 ON KEY2 OFF |
| C1 | Управление таймером 1, связанным с кнопкой 1. Установка времени в секундах, максимальное значение 32767. Для отключения функции таймера, необходимо задать время равное 0. |
C1 RES C1 SET 60 C1 SET 0 |
| C2 | Управление таймером 2, связанным с кнопкой 2. Установка времени в секундах, максимальное значение 32767. Для отключения функции таймера, необходимо задать время равное 0. |
C2 RES C2 SET 60 C2 SET 0 |
| USB | Управление питанием USB, по умолчанию включено | USB ON USB OFF |
В случае удачного выполнения команды возвращает «OK».
В случае некорректных данных возвращает «ERROR».
Признаком конца строки служит символ возврата каретки «\r». Также поддерживается режим «\r\n».

Устройство выполнено на базе контроллера STM32F103CA с аппаратной поддержкой USB. Библиотека работы с USB версии V4.0.0. Напряжение работы 3.3В получаем с помощью линейного стабилизатора из 5В на USB. Во всех управляющих цепях используются транзисторы в ключевом режиме. Также не забываем про защитный диод от токов самоиндукции в катушки реле (в моем случае он оказался встроенным).
Как удалить WatchDog
Подлинный файл является одним из компонентов программного обеспечения Motorola Phone Tools, разработанного Motorola .
WatchDog.exe — это исполняемый файл (программа) для Windows. Расширение имени файла .exe — это аббревиатура от англ. слова executable — исполнимый. Необходимо запускать исполняемые файлы от проверенных производителей программ, потому что исполняемые файлы могут потенциально изменить настройки компьютера или нанести вред вашему компьютеру. Бесплатный форум с информацией о файлах может помочь вам разобраться является ли WatchDog.exe вирусом, трояном, программой-шпионом, рекламой, которую вы можете удалить, или файл принадлежит системе Windows или приложению, которому можно доверять.
Вот так, вы сможете исправить ошибки, связанные с WatchDog.exe
- Используйте программу Настройщик Windows, чтобы найти причину проблем, в том числе и медленной работы компьютера.
- Обновите программу Bitdefender Agent WatchDog. Обновление можно найти на сайте производителя (ссылка приведена ниже).
- В следующих пунктах предоставлено описание работы WatchDog.exe.
Информация о файле WatchDog.exe
Описание: WatchDog.exe не является важным для Windows и часто вызывает проблемы. Файл WatchDog.exe находится в подпапках «C:\Program Files». Известны следующие размеры файла для Windows 10/11/7 45,056 байт (16% всех случаев), 462,288 байт и еще 12 варианта .
Это не файл Windows. Сертифицировано надежной компанией. WatchDog.exe способен мониторить приложения и записывать ввод данных. Поэтому технический рейтинг надежности 26% опасности.
Издатель программного обеспечения Bvrp предоставляет деинсталлятор (Панель управления->Программы->mobile PhoneTools или Bitdefender Agent).
Если WatchDog.exe находится в подпапках «C:\Users\USERNAME», тогда рейтинг надежности 82% опасности. Размер файла 23,040 байт. Это не системный процесс Windows. Процесс загружается во время процесса загрузки Windows (Смотрите ключ реестра: TaskScheduler , MACHINE\Run , User Shell Folders ). Нет информации о создателе файла. Приложение не видно пользователям.
Важно: Некоторые вредоносные программы маскируют себя как WatchDog.exe. Таким образом, вы должны проверить файл WatchDog.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера.
Комментарий пользователя
| Появился неоткуда, закрыл процесс и стало быстрее работать Loky |
Лучшие практики для исправления проблем с WatchDog
Аккуратный и опрятный компьютер — это главное требование для избежания проблем с WatchDog. Для этого требуется регулярная проверка компьютера на вирусы, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые больше не нужны, проверка программ, которые запускаются при старте Windows (используя msconfig) и активация Автоматическое обновление Windows. Всегда помните о создании периодических бэкапов, или в крайнем случае о создании точек восстановления.
Если у вас актуальные проблемы, попробуйте вспомнить, что вы делали в последнее время, или последнюю программу, которую вы устанавливали перед тем, как появилась впервые проблема. Используйте команду resmon, чтобы определить процесс, который вызывает проблемы. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.
Следующие программы могут вам помочь для анализа процесса WatchDog.exe на вашем компьютере: Security Task Manager отображает все запущенные задания Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записей автозагрузки. Уникальная оценка рисков безопасности указывает на вероятность процесса быть потенциально опасным — шпионской программой, вирусом или трояном. Malwarebytes Anti-Malware определяет и удаляет бездействующие программы-шпионы, рекламное ПО, трояны, кейлоггеры, вредоносные программы и трекеры с вашего жесткого диска.
WatchDog сканер
Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.
Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.
Инструмент ремонта ПК бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.
Using Watchdog to Always Keep a Machine Running

Three fawn pugs, keeping watch. Image: Sneaky
Watchdog is a daemon / subsystem used to monitor the basic health of a machine. If something goes wrong, such as a crashing program overloading the CPU, or no more free memory on the system, watchdog can safely reboot the machine, allowing your service to keep on going rather than wait for someone to come kick the machine.
Or, better yet, it has a repair option to run a script you give it that will attempt to repair the system, and only reboot as a last ditch effort.
How it does it#
Watchdog has a list of options that for what it can monitor. These include:
- Ping a host, showing that network in reachable.
- Check if a file been modified since x minutes, such as the logs showing that there is system activity
- Verify the load under a set amount.
- If memory can be allocated. If not, programs won’t start / will crash.
You can set any, all, or none of these options.
Watchdog is careful about the reboot. When it reboots the machine, it does so in a controlled matter. No sudden reboot. It kills processes, syncs the disks, unmounts the filesystems, and otherwise does a full reboot like the system normally would.
To protect against a situation where watchdog dies or otherwise stops running, a device can created that will require a write within a minute, otherwise will trigger a reboot of the machine. This is optional, but when used watchdog will write to this device every second, resetting the kernel’s timer on it.
In the below example, we will use the softdog module to make this device, though there are hardware options out there that can do this. The device will be called /dev/watchdog .
Note that watchdog may not help with kernel panics and/or system hangs. For that I would suggest setting actions for these specific cases, found in this tutorial.
Installing#
First, install it.
And then disable it. Yep, that’s right. Unless you know what you’re doing, you should disable it until you know it’s working. Distros enable it because in their default config they disable most of the checks. We will be modifying those, so let’s play it safe.
If misconfigured, the machine could immediately reboot. And if it’s enabled at boot, then the machine could continue to reboot if it thinks that things are “failing”.
Setting it up#
The main configuration file is /etc/watchdog.conf . This is where we will set which tests to run, where our repair script is, and to use the watchdog device.
Then there is a file that has our watchdog service settings, such the options to give the watchdog program. This is usually /etc/default/watchdog or /etc/sysconfig/watchdog depending on your system.
The following options check for certain items, and upon failure, it will run the repair binary and/or reboot.
Checking the load#
This is my go to check for watchdog. It just makes sure there isn’t a huge load, and that the system hasn’t crashed. Yes, when a system crashes, it’s probably still running. But the load will skyrocket. How high? I’ve had a system that once hit 2000 for the load! How it was still running is beyond me.
The default values will have it be around 10 or 30 max. I think that’s too low, as I have machines do nightly cron jobs that will cause a short spike above 50. But they are still running just fine, and I don’t see the point of rebooting just for that.
What you set them to will depend on your setup, the jobs the machine is doing, and how high your loads go. Does it sometimes skyrocket? Do you mind if it starts chugging, or do you just want to have it reboot? Look at the load history of your server (you have that right?).
It’s simply a balance between not wanting to reboot while the machine is doing a lot of work, and not wanting to wait forever when issues are happening.
The first one is max-load-1 which is the 1 minute load, and then max-load-5 for the 5 minute and max-load-15 for the 15 minute.
For small systems I like to have max-load-1 be 150 times the number of CPUs I have, up to 4 CPUs, where I drop it to 100 times. This allows it to spike for a bit if needed.
And then for the others, I drop it to 100 for the 5 minute load, and 50 for the 15 minute. That may still be too high, but they seem to work. You may
So for a single CPU system, I would set it to be:
And for 16 cores:
Memory#
This test will attempt to allocate (use) the given amount of memory.
Network checks#
These are basic pings and monitoring of the network. Half the time I don’t use them, but
This will ping a server. You could set it to your router. Just know that if the router goes does, the machine will reboot.
Monitor this interface for traffic. Note that if this is a slow site that doesn’t see much traffic, it will reboot.
Files and pidfiles#
Here you can monitor a file for changes. If no changes happen in change minutes, it will reboot.
I don’t use the pidfile option. In my option, it’s better to use monit that can both monitor the pid file, as well as actually test a connection to the service.
Test script#
You can run your own test script. Any error besides 0 will be seen as an error and cause watchdog to reboot the system.
Repair script#
The Repair binary is a program you create that tries to fix the machine rather than having to do a full reboot. The script should exit 0 if the system was repaired,
If this machine is part of a cluster/swarm/kubernetes, you can have your repair script fence off and otherwise get the machine out of the cluster. And offload the containers and jobs to other machines.
Watchdog Device (Optional)#
As said before, this device is written to every second by watchdog, and if it’s not written to within 60 seconds, the machine will reboot.
First, we set watchdog to use the watchdog device in /etc/watchdog.conf :
Then in /etc/default/watchdog or /etc/sysconfig/watchdog , we set the service to load the softdog module which will create the watchdog device. This is with watchdog_module .
No Action#
It is advisable to set it to testing mode. Or you may get kicked out by a random reboot.
Add the —no-action option to ’the watchdog_options in /etc/default/watchdog or /etc/sysconfig/watchdog . This will cause watchdog to only say it’s going to reboot, without actually rebooting. And we will add the -v option so we can see the checks that are happening.
As a reminder, make sure you’ve disabled the watchdog service, so it won’t keep on rebooting your machine if something is not configured properly.
You may have to add this line, as it’s usually not there.
Running it#
Now that you’ve configured it, go ahead and start it. (Or restart it if it’s running)
And watch the logs
You should see something like
Check that everything is working properly, and fix any errors or problems.
Check watchdog device#
If you enabled the watchdog device, then check that the softdog module was loaded
It should list the module in the output.
And check that the watchdog device exists.
For real#
Once you’ve got it setup the way you want, and there aren’t any issues, now we get to run it for real. In /etc/default/watchdog or /etc/sysconfig/watchdog , either comment out or remove the no action line:
And restart watchdog
Check the logs for any issues. Once you’re set, enable watchdog.
No way out (Optional)#
The watchdog device can be configured to always require a write, meaning that it’s countdown can’t be stopped, even if watchdog is shutdown properly. This can prevent someone from shutting down the service, which will close the device, undoing all your hard work.
Or just because you want to.
This is accomplished by using the softdog option nowayout , making it so once loaded, the countdown cannot be stopped.
Be careful with this option, as it will reboot your machine if you stop the daemon.
Modify the watchdog_module option in /etc/default/watchdog or /etc/sysconfig/watchdog . Or add it.
If you want to get really serious, you could add it to /etc/modules-load.d/softdog.conf . However, that means that it will be loaded at system startup. If the watchdog service doesn’t start, the machine gets rebooted.
Don’t blindly add that last one. Read the warning above it.
Conclusion#
Watchdog is a great addition to help keep the system running, along with the sysctl options for kernel panics.
Other resources#
-
(saved on archive.org)
Related Posts
WeTTy the Fast SSH Terminal in Your Browser

WeTTy is a fast, full fledged terminal emulator, the works just as fast as a normal terminal and handles just as well. I’ll show you how to set it up on Docker using Traefik and Docker Compose.
Multifactor Authentication for SSH Logins

How to setup MFA/2FA/Two Factor Authentication to enhance the security of your SSH logins.
Matomo Website Analytics via Docker Compose

Matomo is an analytics tool focused on privacy while feature rich. We will set it up using Docker Compose.
Что такое WatchDog и для чего он нужен

WatchDog в переводе с английского — сторожевой пес. Сегодня так называют сторожевые таймеры, основная задача которых — своевременный перезапуск «зависшего» оборудования с целью восстановления его работоспособности. Отлично зарекомендовало себя устройство под названием IP WatchDog из линейки продуктов компании HW group (Чешская Республика). Поставляется оно в двух вариантах исполнения — промышленная версия в корпусе для монтажа на стандартную DIN-рейку IP WatchDog HWg-WR02a и облегченный вариант IP WatchDog Lite. Подробнее об этих устройствах, а также о том, каким должен быть оптимальный WatchDog и методы определения работоспособности оборудования, рассказывает эта статья.
Не секрет, что высокие технологии в настоящее время охватывают все новые и новые сферы жизни человека. Еще в середине прошлого века трудно было себе представить тот рывок, который техника совершила за последние 20 лет.
Сегодня никого не удивить электронными терминалами по приему платежей, банкоматами, комплексами бытовой автоматики («Умный дом»), сложными автономными системами видеонаблюдения и т.п.
Список можно продолжать бесконечно долго, и все равно невозможно охватить сразу все области интеграции сложной электронно-вычислительной техники в современном обществе. Эти технологии делают нашу жизнь проще, комфортнее и, несомненно, гораздо интереснее.
К сожалению, несмотря на стремление к технологическому совершенству, создать что-либо совершенно надежное невозможно в силу объективных причин. Человек по природе своей несовершенен, следовательно, и созданные им приспособления не всегда действуют так, как хотелось бы. Это касается абсолютно любой сферы деятельности, включая сложнейшие стратегические комплексы и космическую отрасль.
Ведь не секрет, что чем сложнее устройство, чем больше элементов оно в себе содержит, тем выше риск возникновения непредвиденного сбоя. И дело здесь вовсе не в нежелании инженеров и программистов получить безупречный результат – просто невозможно предусмотреть абсолютно все ситуации.
Да и, кроме того, есть целый ряд причин, защиты от которых просто может не быть, либо она будет неэффективна. Никто не застрахован от внезапных перепадов напряжения питания, даже, несмотря на целый комплекс защитных устройств на этот случай, от случайных статических разрядов, от умышленных вредоносных действий недоброжелателей (например, хакерские атаки на сервера в интернете). Последствия таких событий, наверное, известны всем.
На практике, попав во внештатную ситуацию, оборудование ведет себя малопредсказуемо – происходят различные сбои, устройство «зависает», начинает «глючить», одним словом перестает корректно выполнять свои функции. Инженеры и программисты постоянно борются с подобными явлениями, регулярно обновляя программное обеспечение своих продуктов и совершенствуя их аппаратную часть. Но одно дело, когда «завис» или показал «синий экран смерти» домашний компьютер или ноутбук, и совсем другое дело – когда перестал функционировать тот же банкомат, подстанция сотовой связи, мощный сервер в центре обработки данных или сетевая камера видеонаблюдения.
В первом случае все решается простым нажатием кнопки «Сброс» или кратковременным выключением прибора из сети, а со вторым случаем все сложнее. А что, если тот самый банкомат или видеокамера находятся за многие сотни или даже тысячи километров от администратора системы?
Выход напрашивается сам собой – приставить к каждому устройству персонального смотрителя, который будет неустанно следить за его работоспособностью и вовремя нажимать нужные кнопки в случае сбоя. Но не все так просто.
Во-первых, не стоит забывать о пресловутом «человеческом факторе», как мы уже говорили человек – существо несовершенное, может и отлучиться куда-нибудь, отвлечься или просто заснуть на посту.
Во-вторых, порой, финансовые затраты на персонального сторожа для каждого устройства будут обходиться гораздо дороже самого этого устройства, что весьма расточительно, а в комплексе с первым утверждением вообще малоэффективно.
Есть еще способ. Практически во все современные устройства, работающие под управлением контроллера (процессора) и содержащие управляющую микропрограмму или операционную систему, встраиваются т.н. «Сторожевые таймеры» (англ. WatchDog – Сторожевой Пёс).
По своей сути они могут быть как программными, так и аппаратными, встроенными в микроконтроллер или иную микросхему внутри устройства.
Основная задача таких таймеров – своевременный перезапуск «зависшего» оборудования с целью восстановления его работоспособности.
Если в течение определенного времени или определенного в программе числа циклов операционная система устройства или порт микроконтроллера не отвечают на запросы таймера, устройству посылается команда сброса и перезагрузки.
Несомненно, это весьма удобно и не требует таких больших затрат, как содержание штата сотрудников, следящих за каждым прибором, но и тут есть большой минус. Те сторожевые таймеры, про которые велась речь выше – встроены непосредственно в логику контролируемого прибора. И в этом их основной недостаток. При определенных условиях эти таймеры, независимо от того, аппаратно они реализованы или программно, могут «зависнуть» вместе со всем устройством. И тогда польза такого электронного сторожа будет нулевой – его самого придется сбрасывать вместе со всей начинкой подконтрольного прибора.
Есть еще одно условие – иногда подачи только сигнала «Сброс» оказывается недостаточно, и для полного восстановления работоспособности устройства его необходимо на некоторое время полностью обесточить. Например, если по какой-то причине сработала защита встроенного в сетевую видеокамеру преобразователя питания? Устройство просто выключится, и сторожевой таймер тоже, следовательно, выходом из положения будет только кратковременное прекращение подачи напряжения питания на камеру с дальнейшим его восстановлением.
Итак, каким же должен быть оптимальный WatchDog?
Он должен быть независимым от контролируемого устройства, автономным, надежным, гибко программируемым и, самое главное, с возможностью дистанционного управления для того, чтобы оператор или администратор имели возможность при малейшем подозрении на неправильную работу контролируемого оборудования принять меры по исправлению ситуации. Так есть ли оптимальное решение? Конечно же, есть.
В линейке продуктов компании HW group (Чешская Республика) есть интересное устройство под названием IP WatchDog.
Поставляется оно в двух вариантах исполнения — прибор промышленного применения в корпусе, предназначенном для монтажа на стандартную DIN-рейку IP WatchDog HWg-WR02a и облегченный вариант IP WatchDog Lite.
Как следует из названия, оба устройства позволяют контролировать работоспособность различного сетевого оборудования, такого как IP-видеокамеры, видеорегистраторы, маршрутизаторы, точки доступа WiFi, персональные компьютеры и ноутбуки, серверы, телекоммуникационные стойки и т.п.

IP WatchDog HWg-WR02a так же дополнительно оснащен разъемом последовательного порта RS-232, что позволяет использовать его для контроля оборудования, не оснащенного Ethernet-портами — запрограммированное должным образом устройство будет ожидать периодической передачи от подконтрольного оборудования определенной последовательности символов (ASCII, HEX, DEC), передающихся через порт RS-232.
Устройства полностью автономны и не требуют какого-либо дополнительного программного обеспечения для управления. Достаточно один раз сделать все необходимые настройки через Web-интерфейс в любом удобном интернет-браузере — поддерживаются как Internet Explorer, так и Mozilla Firefox, Google Chrome, Safari, Opera.
Как IP WatchDog HWg-WR02a, так и IP WatchDog Lite имеют два независимых канала для мониторинга состояния подключенного к ним оборудования и два независимых выхода контактов реле, способных коммутировать любую нагрузку с напряжением питания до 230В при токе до 16А. Это означает, что данные устройства могут использоваться не только для сброса контролируемого оборудования, но и для управления питанием различных приборов — например, подключить резервный сервер или маршрутизатор в случае отказа основного.
Сторожевые таймеры производства HW group используют 5 различных механизмов для определения работоспособности оборудования, что делает эти устройства очень гибкими и дает широкие возможности по внедрению их в различные системы, такие как сетевое видеонаблюдение, серверные стойки, телекоммуникации, медицинские приборы, охранно-пожарное оборудование, Web-сервера.
И даже оборудование, не оснащенное сетевым интерфейсом, но имеющее стандартный последовательный порт RS-232 (COM-порт) может быть с легкостью использовано совместно с IP WatchDog Hwg-WR02a. Кроме того, оператор или администратор всегда могут оперативно вмешаться в работу устройства посредством локальной сети или удаленно, через интернет.
Помимо мониторинга оборудования IP WatchDog ведет свой собственный журнал событий.
Вот список всех методов определения работоспособности оборудования, используемых в сторожевых таймерах HW group:
Ping Push: В этом режиме IP WatchDog через определенные интервалы времени отправляет на заданный IP-адрес запросы PING, тем самым определяя, откликается ли на них контролируемое устройство. В случае, если отклик от устройства не был получен, сработают контакты реле и, к примеру, будет произведена его перезагрузка. Данный метод очень удобен для мониторинга состояния сетевых видеокамер, маршрутизаторов, сетевых коммутаторов и т.п.
Ping Request: В отличии от предыдущего режима, IP WatchDog не посылает запросы PING, а ожидает таковых от контролируемого устройства. Хорошо подходит для использования в серверных и телекоммуникационных стойках, на вышках сотовой связи.
Web Push: Эта функция доступна только для IP WatchDog HWg-WR02a. Ее суть заключается в том, что сторожевой таймер периодически запрашивает определенную Web-страницу с указанного пользователем адреса. Это очень удобный метод контроля работоспособности Web-серверов – при отсутствии или недоступности запрашиваемой страницы (известная всем «Ошибка 404») сервер будет своевременно перезапущен.
Web Request: В данном режиме IP WatchDog ожидает от контролируемого устройства запроса своей внутренней Web-страницы. Если страница не будет запрошена в течение определяемого пользователем интервала времени – устройство будет перезапущено. Метод так же удобен для контроля состояния Web-серверов. Доступна эта функция только в обновленном IP WatchDog HWg-WR02a.
RS232 Rx: Как уже упоминалось выше, в этом режиме сторожевой таймер будет ожидать от подключенного к нему устройства определенную последовательность символов, переданную посредством стандартного порта RS-232.