RUNBOOK / systemd
systemctl service failed:退出码、依赖与 journal
服务启动后立刻 failed,只有 systemctl 状态摘要。
故障现象与判断依据
最可能原因
systemctl status 只给摘要;实际失败原因通常在 unit 配置、依赖顺序、权限或 journal 中。
LOG● app.service - Application
Active: failed (Result: exit-code)
Process: 123 ExecStart=/usr/local/bin/app (code=exited, status=1/FAILURE)安全诊断
以下命令用于读取状态、验证解析或复现请求;先确认目标主机、权限与影响范围。命令中的占位符必须替换为当前环境的实际值。
READ / VERIFYsystemctl status <unit> --no-pager
journalctl -u <unit> -b --no-pager
systemd-analyze verify <unit-file>推荐修复步骤
- 1执行 systemctl status <unit> --no-pager 与 journalctl -u <unit> -b --no-pager。
- 2用 systemd-analyze verify <unit-file> 检查 unit 语法和依赖。
- 3修复后执行 daemon-reload,再重启并检查 active 状态。
验证、限制与回滚
修复后的验证
systemctl is-active <unit> 返回 active,重启后日志没有同类错误。
风险提示与回滚
不要以关闭证书校验、删除全部缓存、无限重试、关闭防火墙或放宽到 chmod 777 来替代根因定位。任何配置变更前先保留原文件和校验结果;若验证失败,恢复该备份并重新采集日志。