要解决的问题
“服务失败”是结果,不是根因。先记下当前状态和退出码,再读取同一服务的最近日志,寻找错误发生在加载环境、启动程序、绑定端口还是处理请求阶段。不要一开始清空日志或连续重启。
适用环境
使用 systemd 的 Ubuntu;示例服务 navsite 需要替换为实际单元名。读取部分系统日志可能需要相应权限。
操作步骤与示例
将以下内容放在对应终端或脚本中执行。示例路径、服务名需要与你的环境一致。
systemctl status navsite --no-pager
systemctl show navsite --property=ActiveState,SubState,Result,ExecMainStatus
journalctl -u navsite -n 50 --no-pager如何判断结果
关注状态、Result 和 ExecMainStatus,以及日志中的对应时间。状态为 active 不代表所有业务接口可用,还需请求应用自己的健康地址。日志中最早的明确错误通常比最后一条“进程退出”更有定位价值。
常见问题与排查
没有日志时,检查单元名、读取权限、日志保留设置及程序是否把日志写到别处。不要把环境文件或完整错误日志直接公开;如需排查,先提取必要片段并移除凭据。
适用边界
这些命令只读取状态和日志,不修改单元文件。服务类型、重启策略和日志输出目标因项目而异;本页不把某个固定退出码解释为所有应用的同一种故障。