bejo Asked: 2018-12-07 09:25:57 +0800 CST2018-12-07 09:25:57 +0800 CST 2018-12-07 09:25:57 +0800 CST systemd 仅在崩溃后自动重启服务 772 只有当服务没有返回 0 时,是否可以让 systemd 自动重启服务?据我所知,当一个正确的结束发生时,服务返回 0——比如当用户像关闭程序一样主动终止服务时。当它被手动终止时,我很想告诉 systemd 不要重新启动服务。那可能吗? linux systemd 1 个回答 Voted Best Answer Chris Down 2018-12-07T09:28:13+08:002018-12-07T09:28:13+08:00 是的,您可以Restart=on-failure在单位Service部分内使用。 来自systemd 的文档(也可在man 5 systemd.service): 重启= [...] 如果设置为on-failure,服务将在进程以非零退出代码退出时重新启动,由信号终止(包括核心转储,但不包括上述四个信号),当操作(例如服务重新加载)次时出,以及何时触发配置的看门狗超时。如果设置为on-abnormal,当进程被信号终止(包括on core dump,不包括上述四种信号)、操作超时或触发watchdog timeout时,服务将重新启动。 [...] 将此设置on-failure为长期运行服务的推荐选择,以便通过尝试从错误中自动恢复来提高可靠性。对于应该能够自行选择终止(并避免立即重新启动)的服务,on-abnormal是一种替代选择。 顺便说一句,您可以使用 明确告诉 systemd 停止服务,而不是当前手动终止进程的方法systemctl stop,这将绕过任何Restart=设置。
是的,您可以
Restart=on-failure
在单位Service
部分内使用。来自systemd 的文档(也可在
man 5 systemd.service
):顺便说一句,您可以使用 明确告诉 systemd 停止服务,而不是当前手动终止进程的方法
systemctl stop
,这将绕过任何Restart=
设置。