systemd-timeout

systemd 启动或停止超时的定位

现象

Job for app.service timed out,服务启动/停止卡住,systemctl status 长时间处于 activating 或 deactivating。最终可能被 SIGKILL。

快速定位

systemctl status app
journalctl -u app --since '10 min ago'
systemctl show app -p Type -p TimeoutStartUSec -p TimeoutStopUSec
systemctl show app -p ExecStart -p ExecStop -p KillMode -p RemainAfterExit

常见根因

  1. Type=simple 但进程实际后台化,systemd 认为没启动完成。
  2. 服务启动脚本阻塞或等待交互。
  3. 停止时进程忽略 SIGTERM,直到超时被 SIGKILL。
  4. 依赖服务/网络/磁盘慢,启动顺序不对。
  5. ExecStop 缺失或写错,systemd 无法优雅停止。

修复

相关命令