服务启动请求重复太快,拒绝启动限制


23

我有一个显示以下错误的systemd服务 service start request repeated too quickly, refusing to start

我了解该服务已配置为在失败时重新启动,并且一次又一次地重新启动。但是到底什么时候拒绝重启?有没有定义它的限制或数字?

而且,这too quickly到底是什么意思,这是给定时间段内重新启动次数的限制吗?

Answers:


26

默认限制是允许在10秒内重新启动5次。如果服务由于Restart=服务定义中的config选项而超过该阈值,则它将不会尝试进一步重启。

这些速率是使用StartLimitIntervalSec=StartLimitBurst=选项配置的,而选项则用于Restart=控制SystemD尝试重新启动服务的时间。

更多信息man systemd.unitman systemd.service

然后用于systemctl daemon-reload重新加载单元配置。


3
谢谢@Sven。这些配置在哪里定义?
Vikas Tiwari

在服务文件中。这些StartLimit...选项可能不在其中,而仅使用默认选项(在10秒内重新启动5次)。
Sven

默认值是否写入其他配置文件中?
Vikas Tiwari

3
可以/etc/systemd/system.conf使用DefaultStartLimitIntervalSec(和类似的)选项配置默认值。但是,通常不设置这些参数,而是使用内置的默认值。请参阅man systemd-system
斯文

@Sven服务文件在哪里?
用户

2

值得注意的是,某些故障似乎引发了此错误,而原因却不同。

我注释掉了默认的禁令时间,并插入了一个替代的内联 **bantime = 7200 #3600**

我还添加了一个新部分[sasl],其中包括一个过滤器名称,该名称与我在本文中给出的名称有所不同。

fail2ban拒绝重新启动,因此没有错误地出现任何错误,

服务启动请求重复太快,拒绝启动错误

只有当我注释掉[sasl]部分时,我才得到一个错误,该错误涉及无效的禁止时间,我从该错误中收集到它无法应对嵌入式注释。

当我修复该问题并取消注释新的[sasl]部分时,出现错误,未找到过滤器。替换正确命名的过滤器会导致fail2ban重新加载,如预期的那样。

因此,如果进行更改并出现此错误,请确保在尝试修复症状之前先将更改删除并仍然出现相同的错误。


0

我刚刚用于解决同一问题的一种快速而又肮脏的方法是,我创建了一个bash包装程序脚本,该脚本会休眠,以使服务无法以最快的速度启动。对我有用,因为我不需要立即重启。

/root/sleep_and_start_autossh.sh

    /bin/bash -e
    sleep 200
    /usr/bin/autossh args...

/etc/systemd/system/autossh.service

    StartLimitIntervalSec=120 # this didn't seem to do much for me.
    #ExecStart=/usr/bin/autossh args ...
    ExecStart=/root/sleep_and_start_autossh.sh

您需要降低 StartLimitIntervalSec以避免节流,或将其设置为0以禁用。阅读systemd文档。
弗拉基米尔·潘捷列夫

0

您没有指定哪个服务因此错误而无法启动。

我遇到了这个问题fail2ban,就像MickG回答一样,该错误实际上出在我的fail2ban配置中,与systemd服务配置无关。

使用fail2ban,解决方案是从以下位置开始

fail2ban-client -x start

这将显示详细的错误消息。由于某些原因,使用systemctl start fail2ban实际错误时会丢失并且无法在任何日志中找到。

纠正配置错误后,可以使用systemd再次停止或(重新)启动服务。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.