Systemd's StartLimitIntervalSec and StartLimitBurst never work
StartLimitIntervalSec=
was added as part of systemd v230. In systemd v229 and below, you can only use StartLimitInterval=
. You will also need to put StartLimitInterval=
and StartLimitBurst=
in the [Service]
section - not the [Unit]
section.
To check your systemd version on CentOS, run rpm -q systemd
.
If you ever upgrade to systemd v230 or above, the old names in the [Service]
section will continue to work.
Source: https://lists.freedesktop.org/archives/systemd-devel/2017-July/039255.html
You can have this problem without seeing any error at all, because systemd ignores unknown directives. systemd assumes that many newer directives can be ignored and still allow the service to run.
It is possible to manually check a unit file for unknown directives. At least it seems to work on recent systemd:
$ systemd-analyze verify foo.service
/etc/systemd/system/foo.service:9: Unknown lvalue 'FancyNewOption' in section 'Service'
I think I found the issue. All the doc online suggests those all parameters are in UNIT file (systemd unit file), but still in my system (centos 7.5), they are in service file. Besides the name is "StartLimitInterval", not "StartLimitIntervalSec".