StartLimitBurst= и StartLimitIntervalSec=: предел частоты запусков
Задают предел частоты запусков: не больше StartLimitBurst= попыток за StartLimitIntervalSec=. Превысив предел, unit переходит в состояние failed с результатом start-limit-hit и не запускается до сброса.
Что делает
Это защита от бесконечного цикла перезапусков. Без неё падающая служба крутилась бы вечно, забивая журнал и расходуя ресурсы. Значения по умолчанию — 5 запусков за 10 секунд.
Важная тонкость: параметры живут в секции [Unit], хотя относятся к перезапуску, который настраивается в [Service]. Их часто ставят не туда, и они молча не работают.
Где ставится. В секции [Unit]. Сброс счётчика — командой systemctl reset-failed имя.
Значения
| Значение | Что происходит |
|---|---|
StartLimitBurst=5 | число попыток; значение по умолчанию. |
StartLimitIntervalSec=10s | окно, в котором считаются попытки. |
StartLimitIntervalSec=0 | предел отключён: перезапуск без ограничений. |
StartLimitAction=reboot | что делать при достижении предела; по умолчанию ничего. |
Пример
Служба, которой позволено больше попыток с паузами.
[Unit]
StartLimitIntervalSec=5min
StartLimitBurst=10
[Service]
Restart=on-failure
RestartSec=15s
Десять попыток за пять минут с паузой в пятнадцать секунд подходят службе, ждущей внешнюю зависимость.
Типичные ошибки
Параметры в секции [Service] не работают: их место — [Unit].
После достижения предела служба не запускается даже вручную: нужен systemctl reset-failed.
Отключение предела вместе с мгновенным перезапуском приводит к бесконечному циклу.
Связанные ошибки
- start-limit-hit: служба заблокирована после серии перезапусковСостояние start-limit-hit и сообщение start request repeated too quickly: systemd перестал перезапускать службу. Как разблокировать и найти исходную причину.
- Failed with result 'exit-code'Состояние exit-code: служба завершилась с ненулевым кодом. Что это сообщение значит и где искать настоящую причину.
Рядом стоящие параметры
Где важен на практике
Источники
- systemd.unit(5)
- Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)