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

Puma systemd服务重启超时提示失败但实际启动成功如何排查

根因说明

你配置的Puma systemd服务使用了Type=notify类型,该模式要求业务进程启动完成后主动向systemd发送READY=1的通知信号,否则systemd会始终判定进程处于启动中状态,等待超时后就会返回启动失败错误,哪怕进程本身已经正常启动对外提供服务。你观察到的服务状态停留在activating (start)就是典型的未收到启动通知的表现。

排查修复方案
  • 首先修改Puma配置文件/srv/app/current/config/puma.rb,添加配置项:
    systemd_socket true
    
    该配置会开启Puma的systemd通知支持,启动完成后自动发送READY信号给systemd。
  • 若添加配置后问题依然存在,可检查Puma版本:你当前使用的4.3.8版本存在部分场景下通知发送异常的已知bug,可升级到4.3.12以上的4.x稳定版本,或5.x、6.x稳定分支解决。
  • 若暂时无法升级Puma,可临时调整systemd服务配置规避:将puma.service中的Type=notify改为Type=exec,同时注释掉WatchdogSec=10配置,修改后执行systemctl daemon-reload重载配置即可,该方案会失去systemd看门狗的异常自动检测能力,仅作为临时规避方案使用。
systemd未获取的预期反馈

systemd在Type=notify模式下等待的是Puma进程主动发送的READY=1信号,该信号用来告知systemd进程已经完成启动流程,可以对外提供服务。

内容的提问来源于stack exchange,提问作者Rob Lucas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:21:00