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
Type=simple 但进程实际后台化,systemd 认为没启动完成。SIGTERM,直到超时被 SIGKILL。ExecStop 缺失或写错,systemd 无法优雅停止。Type:前台进程用 simple/exec,fork 用 forking,支持通知用 notify。ExecStart/ExecStop,避免脚本等待输入或无限阻塞。SIGTERM 后退出。TimeoutStartSec/TimeoutStopSec,但先排查慢的原因。KillMode=mixed 或 control-group,并评估副作用。After=/Requires= 表达,不要靠 sleep。systemctl — 服务管理journalctl — 日志systemd-analyze — 启动链路