我有一个显示以下错误的 systemd 服务service start request repeated too quickly, refusing to start
我了解该服务已配置为在失败时重新启动,并且它会一次又一次地重新启动。但是它到底什么时候拒绝重启呢?是否有定义它的限制或数字?
此外,究竟是too quickly
什么意思,它是在给定时间段内重新启动次数的限制吗?
我有一个显示以下错误的 systemd 服务service start request repeated too quickly, refusing to start
我了解该服务已配置为在失败时重新启动,并且它会一次又一次地重新启动。但是它到底什么时候拒绝重启呢?是否有定义它的限制或数字?
此外,究竟是too quickly
什么意思,它是在给定时间段内重新启动次数的限制吗?
默认限制是允许在 10 秒内重新启动 5 次。如果服务由于服务定义中的配置选项而超过该阈值
Restart=
,它将不会尝试进一步重新启动。StartLimitIntervalSec=
使用和StartLimitBurst=
选项配置速率,该Restart=
选项控制 SystemD 尝试重新启动服务的时间。更多
man systemd.unit
信息和man systemd.service
。然后用于
systemctl daemon-reload
重新加载单元配置。不完全相同的问题,但因为这是搜索时出现的问题......
如果您只想启动它而忽略这个荒谬的限制废话(例如,在 Debian 上,这是 apt 在配置之前自动启动服务的必然结果,注定它们会失败并循环并达到限制,那么一开始就很难向日志发送垃圾邮件限制错误,您甚至无法轻松阅读原因):
请参阅https://bugzilla.redhat.com/show_bug.cgi?id=1016548,Michal Schmidt 说您可以在其中找到它
man systemd.service
并建议重置失败状态:所以现在您的服务可能会启动。或者至少是它不应该出现在日志中的实际最新原因,例如。与
journalctl -x
值得注意的是,某些故障似乎会引发此错误,而原因则不同。
我注释掉了默认的bantime并插入了一个替代的内联
**bantime = 7200 #3600**
我还添加了一个新部分[sasl],其中包括一个过滤器名称,该名称与我所关注的文章中给出的名称不同。
fail2ban 没有在其中任何一个上出错,而是拒绝重新启动,给
只有当我注释掉 [sasl] 部分时,我才得到一个错误,它指的是无效的bantime,我从中收集到它无法处理内联评论。
当我修复该问题并取消注释新的 [sasl] 部分时,我收到一个错误,即未找到过滤器。替换正确命名的过滤器导致fail2ban按预期重新加载。
因此,如果您进行更改并收到此错误,请确保在尝试修复症状之前删除更改并仍然收到相同的错误。
您没有指定哪个服务无法启动并出现此错误。
我遇到了这个问题
fail2ban
,并且在MickG 的回答中,错误实际上是在我的 fail2ban 配置中,与 systemd 服务配置无关。使用fail2ban,解决方案是从它开始
这将显示详细的错误消息。由于某种原因,使用
systemctl start fail2ban
真正的错误时会丢失并且无法在任何日志中找到。更正配置错误后,可以再次停止或(重新)使用 systemd 启动服务。
就我而言,错误消息有些误导。失败的原因是机器之间的副本。线
在我的服务配置文件
/etc/systemd/system/infinite_script.service
中是罪魁祸首。新机器不知道这个用户。更改以
User=root
解决此问题。我刚刚用于解决同样问题的一种快速而肮脏的方法是我创建了一个休眠的 bash 包装脚本,这样服务就不会启动得那么快。对我有用,因为我不需要立即重新启动..
/root/sleep_and_start_autossh.sh
/etc/systemd/system/autossh.service