如何自动重启因OOM被终止的systemd服务?配置有效性确认
Systemd服务OOM被终止后自动重启的配置有效性确认
结论
你配置的Restart=on-failure会触发OOM导致的进程被KILL(退出码9)后的自动重启,完全符合systemd的非干净退出重启规则。
文档依据
根据systemd官方文档对Restart参数的定义:
on-failure模式下,以下场景都会触发服务重启:- 进程以非零退出码退出
- 进程被信号终止(包括
SIGKILL,即信号9) - 进程超时退出
- 进程异常退出
- 当服务因OOM被终止时,内核会向进程发送
SIGKILL信号,属于上述"被信号终止"的场景,因此会触发on-failure配置的重启逻辑。
补充说明
- 若想降低服务被OOM杀死的概率,可以额外配置
OOMScoreAdjust=-1000(数值越低,OOM优先级越低),但这不会影响重启规则。 - 你设置的
RestartSec=1s是合理的,它控制了重启前的等待间隔,避免短时间内频繁重启消耗系统资源。
内容的提问来源于stack exchange,提问作者Shivangi Singh
相关产品推荐
相关产品推荐

