SystemdDoctor
WatchdogSec= [Service]

WatchdogSec=: сторожевой таймер службы

Задаёт срок, в течение которого служба обязана прислать systemd отметку о работоспособности. Не прислала — считается подвисшей и, как правило, перезапускается.

Что делает

Механизм работает только с программами, которые его поддерживают: они вызывают уведомление с отметкой не реже половины заданного срока. Программа узнаёт срок из переменной окружения WATCHDOG_USEC, которую systemd ей передаёт.

Это единственный штатный способ обнаружить подвисание: процесс жив, порт слушает, а работа не идёт. Проверка снаружи такое ловит хуже, потому что подвисшая служба часто продолжает принимать соединения.

Где ставится. В секции [Service], вместе с Restart=on-watchdog или Restart=on-failure.

Значения

ЗначениеЧто происходит
30sтипичное значение для служб с короткими операциями.
5minдля служб, обрабатывающих долгие задачи между отметками.
infinityотключает сторожевой таймер.

Пример

Сторожевой таймер с перезапуском по срабатыванию.

[Service]
Type=notify
WatchdogSec=30s
Restart=on-watchdog
WatchdogSignal=SIGABRT

Сигнал ABRT выбран нарочно: он создаёт дамп памяти, и по трассировке видно, на чём служба заблокировалась.

Типичные ошибки

Включение параметра для программы без поддержки отметок даёт перезапуск ровно по расписанию срока — ровный интервал в журнале и есть главный признак этой ошибки.

Слишком короткий срок у службы с долгими операциями приводит к ложным срабатываниям.

Отключать сторожевой таймер, чтобы «перестало перезапускаться», значит скрывать подвисания вместо их разбора.

Связанные ошибки

  • Failed with result 'watchdog'Состояние watchdog: служба не прислала отметку сторожевому таймеру за отведённое время. Настройка WatchdogSec и разбор.
  • signal=ABRT (status=6/ABRT) в systemdПроцесс службы завершён сигналом ABRT: программа сама прервала работу после внутренней проверки. Где искать причину.
  • signal=TERM (status=15/TERM) в systemdПроцесс службы завершён сигналом TERM. Когда это нормальная остановка, а когда признак проблемы.

Рядом стоящие параметры

Источники

  • systemd.service(5) официальная документация
    сверено 15 сентября 2026
  • sd_notify(3) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026