You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Spring Boot应用启动后立即收到SIGTERM,无法完成更新求助

Spring Boot部署Azure后启动收到SIGTERM的排查方案
  • 检查Azure健康检查配置
    Azure App Service或容器服务会在健康检查失败时发送SIGTERM终止进程。确认健康检查路径(比如/actuator/health)是否正确配置,Spring Boot Actuator是否启用,启动过程中该端点能否正常返回200状态码。如果健康检查超时或返回非成功状态,Azure会判定应用未就绪并终止进程。

  • 分析启动日志细节

    1. 在Azure门户打开应用服务的日志流,实时监控启动过程输出,重点关注收到SIGTERM前的日志,排查是否有报错、依赖服务连接失败、资源不足等异常。
    2. 导出Spring Boot应用的完整启动日志(如logs/application.log),检查终止前是否存在未处理异常、Bean初始化失败、数据库连接超时等问题。
  • 排查资源配额限制
    查看Azure应用服务的定价层配置,确认内存、CPU配额是否充足。如果启动时内存占用超过配额,Azure会触发OOM Killer发送SIGTERM。可在Azure门户“性能”面板查看实时资源使用情况,或在日志中搜索OutOfMemoryError关键词。

  • 验证部署策略与CI/CD流程
    若使用滚动部署或自动缩放配置,确认是否存在旧实例未正常关闭导致的冲突,或自动缩放规则误触发实例终止。同时检查CI/CD流水线(如Azure DevOps、GitHub Actions)的部署脚本,排查是否存在手动发送SIGTERM的命令,或部署步骤逻辑错误导致提前终止新实例。

  • 检查Spring Boot优雅停机配置
    确认application.properties/application.yml中的优雅停机参数:

    server.shutdown=graceful
    spring.lifecycle.timeout-per-shutdown-phase=30s
    

    若超时时间过短,可能导致Azure认为应用未及时响应而强制终止。同时检查应用中是否有未处理的异步任务、长连接(如数据库、MQ),这类场景可能导致优雅停机超时,触发SIGTERM。

  • 查看Azure平台活动日志
    在Azure门户的“活动日志”中搜索应用实例的终止事件,查看事件详情中的终止原因,比如平台维护、资源回收、配置变更触发的重启等。

内容的提问来源于stack exchange,提问作者Bernd Hopp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 20:37:13