RestartSec=: пауза перед перезапуском службы
Задаёт, сколько systemd ждёт перед повторным запуском службы после её завершения. По умолчанию 100 миллисекунд — то есть практически сразу.
Что делает
Пауза решает две задачи. Во-первых, даёт время освободиться ресурсам: порт в состоянии ожидания, файл блокировки, соединение с базой. Во-вторых, растягивает попытки во времени, чтобы служба не упиралась в предел частоты запусков за одну секунду.
Значение подбирают по смыслу сбоя. Для службы, ждущей внешнюю зависимость, разумны 5–30 секунд. Для службы с быстрым восстановлением достаточно 1–2 секунд. С systemd 254 появились RestartSteps= и RestartMaxDelaySec=: они позволяют увеличивать паузу с каждой неудачей.
Где ставится. В секции [Service], рядом с Restart=. Без перезапуска параметр смысла не имеет.
Значения
| Значение | Что происходит |
|---|---|
5s | обычное значение для служб с внешними зависимостями. |
500ms | для быстрых служб, где важна минимальная пауза. |
1min | для служб, ждущих медленный внешний ресурс. |
По умолчанию: 100ms
Пример
Растущая пауза между попытками (systemd 254 и новее).
[Service]
Restart=on-failure
RestartSec=2s
RestartSteps=5
RestartMaxDelaySec=2min
Пауза будет расти от двух секунд до двух минут за пять шагов. Это удобно для служб, ждущих восстановления внешней зависимости.
Типичные ошибки
RestartSec=0 вместе с Restart=always у падающей службы заполняет журнал и упирается в предел частоты запусков за секунды.
Большая пауза задерживает восстановление: при значении в минуту служба будет недоступна минуту после каждого сбоя.
Значение без единицы читается как секунды, а вот RestartSec=100 — это сто секунд, а не сто миллисекунд. Единицу лучше указывать явно.
Связанные ошибки
- start-limit-hit: служба заблокирована после серии перезапусковСостояние start-limit-hit и сообщение start request repeated too quickly: systemd перестал перезапускать службу. Как разблокировать и найти исходную причину.
- Failed with result 'exit-code'Состояние exit-code: служба завершилась с ненулевым кодом. Что это сообщение значит и где искать настоящую причину.
Рядом стоящие параметры
Источники
- systemd.service(5)
- Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)