To allow a maximum of 5 retries separated by 30 seconds use the following options in the relevant systemd service file.
[Unit]
StartLimitInterval=200
StartLimitBurst=5
[Service]
Restart=always
RestartSec=30
This worked for a service that runs a script using Type=idle
. Note that StartLimitInterval
must be greater than RestartSec * StartLimitBurst
otherwise the service will be restarted indefinitely. The service is considered failed
when restarted StartLimitBurst
times within StartLimitInterval
.
See https://www.freedesktop.org/software/systemd/man/systemd.unit.html#StartLimitIntervalSec=interval and https://www.freedesktop.org/software/systemd/man/systemd.service.html#RestartSec=