[systemd-devel] StartLimitBurst prevents manual start-up of a service

Nekrasov, Alexander alexander.nekrasov at emc.com
Thu Mar 19 12:23:41 PDT 2015


Hi All,

Suppose I have a B.service that's doing important work, and an A.service that's watching over B memory consumption. So I want to start A when I start B, and stop A when I stop B. Also B, being important, should be allowed to restart on failures. A, being just a monitor, should be left down if it starts failing too often.

Suppose I have in A.service:

Restart=yes
StartLimitInterval=300
StartLimitBurst=1
StopWhenUnneeded=true

Suppose B.service.wants/A.service and in B.service I have:

Restart=yes
StartLimitInterval=30
StartLimitBurst=3

What happens is, any start of A is counted against the StartLimitBurst limit. Which means, there is no way to let B restart any more frequently than A and have A follow B. The same thing applies to starting A manually - a systemctl start call will fail if done more frequently than once per 300 seconds.

The manual systemctl start problem can be fixed by running systemctl reset-failed before it, but I couldn't find a way to fix the failing to start on a dependency.

How do I support this use case?

Thanks,
Alex

systemd-210-34.9.x86_64
systemd-bash-completion-210-34.9.noarch
systemd-rpm-macros-2-7.2.noarch
util-linux-systemd-2.25-2.2.x86_64
systemd-32bit-210-34.9.x86_64
systemd-sysvinit-210-34.9.x86_64
systemd-presets-branding-SLE-12.0-12.1.noarch


More information about the systemd-devel mailing list