只有当服务没有返回 0 时,才可以让 systemd 自动重启服务吗?据我所知,当发生正确的结束时,服务返回 0 - 比如用户主动终止服务时,如关闭程序。我很想告诉 systemd 不要重启服务,当它被手动终止时。那可能吗?
是的,您可以Restart=on-failure在单位Service部分内使用。
来自systemd 的文档(也可在man 5 systemd.service):
重启=
[...]
如果设置为
on-failure,当进程以非零退出代码退出时,服务将重新启动,由信号终止(包括核心转储,但不包括上述四个信号),当操作(例如服务重新加载)次数out,以及触发配置的看门狗超时时。如果设置为on-abnormal,当进程被信号终止(包括on core dump,不包括上述四个信号)、操作超时或看门狗超时触发时,服务将重新启动。[...]
将此设置
on-failure为长期运行的服务的推荐选择,以通过尝试从错误中自动恢复来提高可靠性。对于能够自行选择终止(并避免立即重新启动)的服务,on-abnormal是另一种选择。
顺便说一句,您可以使用 明确告诉 systemd 停止服务,而不是您当前手动终止进程的方法systemctl stop,这将绕过任何Restart=设置。
| 归档时间: |
|
| 查看次数: |
7769 次 |
| 最近记录: |