如何设置systemd服务以30秒的周期重试5次

jro*_*oss 21 service systemd

我希望systemd启动一个脚本并重试最多5次,相隔30秒.阅读systemd.service手册并搜索互联网并没有产生任何明显的答案.

jro*_*oss 34

经过多次试验和错误,我解决了我的问题,并认为值得发布在这里......

要允许最多5次重试,间隔30秒,请使用相关systemd服务文件中的以下选项.

[Unit]
StartLimitInterval=200
StartLimitBurst=5
[Service]
Restart=always
RestartSec=30
Run Code Online (Sandbox Code Playgroud)

这对我来说是一个使用'Type = idle'运行脚本的服务.请注意,'StartLimitInterval'必须大于'RestartSec*StartLimitBurst',否则服务将无限期地重新启动.

  • @GerhardHagerer当你说[系统]时,我认为你的意思是[服务].这对我有用. (6认同)
  • 值得注意的是 - 根据官方系统的联机帮助页 - RestartSec和Restart是[System]的一部分,而StartLimitInterval和StartLimitBurst是[Unit]的一部分. (5认同)
  • 如果有任何意义,我也曾为'Type = forking'工作。 (3认同)
  • StartLimitInterval有什么作用? (2认同)
  • 同样,此处有更多详细信息:https://www.freedesktop.org/software/systemd/man/systemd.unit.html#和此处:https://www.freedesktop.org/software/systemd/man/systemd.service .html#Examples (2认同)