# Watchdog для сервера

Если вам надо перезапускать сервер при сбоях, обратите свое внимание на watchdog. Watchdog в переводе с английского звучит так - «сторожевой пес». То есть это такой «пес», который следит за состоянием ОС (программ) и если вдруг система перестала отвечать, сторожевой пес, инициирует процедуру перезагрузки ПК.

Есть программные (softdog) и аппаратные реализации watсhdog. Я покажу простой пример программного мониторинга (softdog) сетевой карты, если пинг через эту карту пропадет, сервер будет перезапущен с помощью watchdog. Обычно под аппаратным wathdog'ом понимается специальный USB адаптер, встроенная в мат. плату микросхема или одно-платный ПК типа MX233-OLinuXino. Если внешний USB адаптер, то он соединяется с контактами RESET на материнской плате. Далее демон watchdog через драйвер периодически посылает сигналы USB адаптеру, тем самым говоря ему, что компьютер работает нормально. Как только сигналы перестают поступать на USB контроллер, происходит замыкание контактов RESET и компьютер начинает перезагружаться.

## Устанавливаем watchdog

```plaintext
# apt install watchdog -y
```

Теперь сделаем простую задачу, будем пинговать сервер 8.8.8.8 (google DNS). Если пинг пропадет, сервер будет перезагружен.

Откроем файл `/etc/watchdog.conf` и впишем в него настройки:

```plaintext
PING = 8.8.8.8
INTERFACE = ENP0S3
INTERVAL = 20
```

В этом файле я вписал что мы будем проверять командой пинг сервер 8.8.8.8 по сетевому интерфейсу `enp0s3`

Теперь запустим службу watchdog:

```plaintext
# systemctl start watchdog
```

И поставим на автозапуск во время загрузки:

```plaintext
# systemctl enable watchdog
```

Проверим автоматическую перезагрузку если пропадет пинг на хост 8.8.8.8, отключим адаптер `enp0s3`:

```plaintext
# ifdown enp0s3
```

После 3-5 секунд видим как перезагружается сервер