【发布时间】:2021-11-20 15:16:34
【问题描述】:
我有一个服务应该在出现问题时只重新启动一次。 这是我的服务:
[Unit]
Description=Do job on boot
AllowIsolate=yes
StartLimitBurst=1 # or 2
StartLimitIntervalSec=3
[Service]
User=root
Type=idle
ExecStart=/usr/bin/python3 /var/www/flask/initJobs.py
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
但是这个失败会继续重启。
systemd 版本 241。
尝试添加StartLimitAction=none,但没有任何改变。
【问题讨论】:
-
嗨@Zorro,据我所知这是不可能的。间隔必须有时间限制……但我可以长达100年……这接近无限吧?对您来说是否只允许每 100 年重试一次?如果是这样:freedesktop.org/software/systemd/man/… 和 stackoverflow.com/questions/39284563/… 可以提供帮助。
-
好技巧!如果
RestartSec在第一次重启后计数,则可以工作。如果我需要重新启动 2 次,将无法正常工作。我认为重新启动后可能会中止。 -
我认为你可以让它在任何次数的重试中工作。
-
StartLimitIntervalSec=100y, StartLimitBurst=1只会触发一次重启StartLimitIntervalSec=100y, StartLimitBurst=10会触发 10 -
在第一次重启时使用 StartLimitIntervalSec=100y 和 StartLimitBurst=1 我得到:
Failed to start Job ServicemyJob.service: Start request repeated too quickly