Restart=on-failure vs Restart=always

选项 含义 对 FastAPI/Gunicorn 的适用性
on-failure 仅在服务异常退出(非 0 状态码或被信号杀掉)时重启 如果服务正常退出(状态码 0),systemd 不会重启。适合偶尔需要手动停止的服务。
always 无论退出状态码是什么,都会重启 对 Web 服务和 API 守护进程更合适,保证服务 24/7 持续运行,即便被人为或脚本正常退出,也会重启。

FastAPI + Gunicorn

  • Gunicorn 是长期运行的服务,通常希望 服务一直在线。
  • 如果出现崩溃或异常退出,必须自动重启。
  • 偶尔手动停止(比如部署更新)时,状态码可能为 0,如果用 on-failure,不会自动重启,但大部分生产环境希望 尽快恢复服务。

推荐配置

Restart=always
RestartSec=3

  • Restart=always → 确保服务持续运行
  • RestartSec=3 → 防止服务崩溃时无限循环重启过快

生产环境中几乎所有 Web API 服务都推荐 always,除非你明确希望手动停止时不重启。

作者 admin

百度广告效果展示