报错是这么冒出来的。服务状态里每隔几十秒就重启一次,退出原因写着信号九,应用日志里没有任何异常堆栈和错误输出。

原因不止一个,得分开看。内存超限被内核直接杀掉。还有一种是启动耗时超过超时设置,被服务管理器强制终止。

不容易想到的是,进程自己触发看门狗超时。

先看退出码和信号

systemctl show app -p ExecMainStatus,ExecMainCode

然后核对内核是否发生过 OOM

dmesg -T | grep -i 'killed process'

延长启动超时时间

systemctl edit app

末了确认看门狗配置

grep -i watchdog /etc/systemd/system/app.service

中途换过一次思路,把范围缩到最小的那一层,反而快了。

恢复的判定其实很直接。服务稳定运行,启动日志里不再出现被信号终止的记录。

提醒一点。反复重启会把日志刷满,先停服务再排查,把自动重启暂时关掉观察真实退出码;重启策略设得太激进反而会掩盖失败原因,让人误以为是应用自己崩了。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189