Заказать рекламу:
https://telega.in/c/iwannabeprogrammer
Контакт: @Filgood777 (реклама, сотрудничество)
VK: https://vk.com/iwannabeprogrammer
MAX: https://max.ru/iwannabeprogrammer
Монетизация через РСЯ. Подключиться по https://ya.cc/B2UP8W
Post #3594
565
Forwarded from Linux Club

systemd watchdog: перезапуск зависших сервисов
Что это вообще такое
Watchdog в systemd - это механизм, который перезапускает сервис, если он завис, даже если процесс формально жив. Не по exit-коду, а по факту отсутствия уведомления.
Минимальная настройка
В юните сервиса:
Это значит, что сервис обязан раз в 30 секунд подтверждать, что он работает. Сервис пингует systemd через sd_notify. Простейший пример (bash):
Если systemd-notify перестаёт вызываться watchdog срабатывает. При зависании, даже если процесс жив, но зациклился, завис на I/O, ушёл в deadlock, перестал обрабатывать события systemd считает сервис мёртвым и делает:
Проверка, что watchdog активен
И в логах:
Частая ошибка
Не сработает. Watchdog требует Type=notify, иначе systemd не ждёт сигналов.
Вывод
systemd watchdog можно использовать как защита от зависаний, а не падений. Если сервис может застыть, но не упасть, то watchdog лучше включить watchdog.
#linux
🐧 Linux Club ©
Что это вообще такое
Watchdog в systemd - это механизм, который перезапускает сервис, если он завис, даже если процесс формально жив. Не по exit-коду, а по факту отсутствия уведомления.
Минимальная настройка
В юните сервиса:
[Service]
Type=notify
WatchdogSec=30
Это значит, что сервис обязан раз в 30 секунд подтверждать, что он работает. Сервис пингует systemd через sd_notify. Простейший пример (bash):
while true; do
systemd-notify WATCHDOG=1
sleep 10
done
Если systemd-notify перестаёт вызываться watchdog срабатывает. При зависании, даже если процесс жив, но зациклился, завис на I/O, ушёл в deadlock, перестал обрабатывать события systemd считает сервис мёртвым и делает:
Watchdog timeout, restarting service
Проверка, что watchdog активен
systemctl show myservice | grep Watchdog
И в логах:
journalctl -u myservice | grep watchdog
Частая ошибка
Type=simple
WatchdogSec=30
Не сработает. Watchdog требует Type=notify, иначе systemd не ждёт сигналов.
Вывод
systemd watchdog можно использовать как защита от зависаний, а не падений. Если сервис может застыть, но не упасть, то watchdog лучше включить watchdog.
#linux
🐧 Linux Club ©
- 👍 2
- ❤ 1
- 🎄 1










