如何修复“.service:启动请求重复得太快”。关于定制服务?

如何修复“.service:启动请求重复得太快”。关于定制服务?

我正在学习如何使用 systemd 创建服务。我收到此错误:

.service: Start request repeated too quickly.

我无法再启动该服务;昨天还在工作。我究竟做错了什么?

(root@Kundrum)-(11:03:19)-(~)
$nano /lib/systemd/system/swatchWATCH.service
 1 [Unit]
 2 Description=Monitor Logfiles and send Mail reports
 3 After=syslog.target network.target
 4
 5 [Service]
 6 Type=simple
 7 ExecStart=/usr/bin/swatch --config-file=/home/kristjan/.swatchrc --input-record-separator="\n \n " --tail-file=/var/log/snort/alert --daemon
 8 Restart=on-failure
 9 StartLimitInterval=3
10 StartLimitBurst=100
11
12 [Install]
13 WantedBy=multi-user.target

StartLimitIntervalStartLimitBurst在尝试修复它后添加了它。

我的系统是 Debian 9.8 Stretch all update。

答案1

首先,如果这是自定义服务,则它属于/etc/systemd/system./lib/systemd适用于包提供的文件。

其次,该服务可能崩溃,并且 systemd 尝试重复重新启动它,因此您需要找出它崩溃的原因。检查服务日志:

journalctl -e -u swatchWATCH

主期刊中可能会有一些额外的细节:

journalctl -e

最后,检查一下是否可以直接在 CLI 上运行:

/usr/bin/swatch --config-file=/home/kristjan/.swatchrc --input-record-separator="\n \n " --tail-file=/var/log/snort/alert --daemon

我看到你正在使用一个--daemon选项。这通常是 systemd 的一个错误。 Systemd 为您进行守护进程。尝试删除此选项。

如果一切都失败了,请回顾一下自昨天开始工作以来发生了什么变化。

答案2

“systemd[1]:SERVICE:启动请求重复得太快”的快速解决方案是

systemctl reset-failed SERVICE
systemctl start SERVICE
systemctl status SERVICE

相关引用来自手动系统控制:

重置失败 [模式...]

...启动速率限制计数器重置为零。因此,如果达到某个单元的启动限制(如配置 StartLimitIntervalSec=/StartLimitBurst=)并且该单元拒绝再次启动,请使用此命令使其可以再次启动。”

答案3

就我而言,错误消息有些误导。失败的原因是机器之间的复制造成的。线路

User=my_user 

在我的服务配置文件中/etc/systemd/system/infinite_script.service是罪魁祸首。

新机器不认识这个用户。改变一下就User=root解决了这个问题。

相关内容