Trace the Boot Critical Path with systemd-analyze critical-chain
critical-chain prints the chain of units that most delayed reaching the default target, with @ and + markers for start time and duration.
01Command
$ systemd-analyze critical-chain02What it does
Unlike blame, which measures each unit in isolation, critical-chain shows the serialized chain of units that actually delayed the default target — marked with @ (time the unit became active) and + (how long it took). Units that ran in parallel are irrelevant to boot time even if individually slow. Use `systemd-analyze critical-chain <unit>` to analyze a single service's dependency path.
03Risk
04Undo
✓No undo needed — this command does not change persistent state.
05Sources
- systemd-analyze(1)Evidence: critical-chain [UNIT...] prints a tree of the time-critical chain of units, showing when each became active and how long after the previous one.
Last verified: 2026-09-17 · Category: System & Settings
06Related solutions
timedatectl lists, sets, and verifies the system timezone and NTP sync status on systemd distributions.
hostnamectl sets the static, transient, and pretty hostname in one step on systemd distros, no reboot required.
systemctl list-timers shows every scheduled timer unit with its last and next run times, which many users forget replaces cron on modern distros.