Checking whether a service is enabled shows whether systemd is configured to pull that unit in automatically at boot or through another activation path. It is a quick read-only check before a reboot, after package installation, or while confirming whether a daemon should return without a manual start command.
The systemctl is-enabled subcommand prints the unit file's install state, not the current runtime state. The answer comes from the unit's enablement symlinks and [Install] rules, so common results include enabled, disabled, static, masked, and not-found instead of a simple yes-or-no value.
Examples below use Ubuntu Server 24.04 with cron.service as the verified enabled unit and systemd-journald.service as the verified static unit. Other distributions can use different unit names for the same software, such as crond.service instead of cron.service, and an enabled service can still be inactive until something actually starts it.
$ systemctl list-unit-files --type=service cron.service crond.service UNIT FILE STATE PRESET cron.service enabled enabled 1 unit files listed.
Use the unit name that actually exists on the host. The STATE column is the current install state, while PRESET is the distribution's default policy.
$ systemctl is-enabled cron.service enabled
Use the full unit name when possible so the result is unambiguous.
enabled persists through reboot because the symlinks live under /etc/systemd/system/. enabled-runtime is stored under /run/systemd/system/ and disappears after reboot.
$ systemctl is-enabled systemd-journald.service static
static means the unit has no [Install] rules of its own and is usually started by another unit, socket, path, or timer. Current upstream systemd documentation still treats static as exit status 0, so read the printed state instead of assuming a successful exit means boot-enabled.
$ systemctl is-active cron.service active
is-enabled answers whether the unit is configured to start automatically. is-active answers whether it is running right now, and the two states are intentionally independent.
$ systemctl is-enabled not-a-real-service.service not-found
Current upstream systemd documentation returns exit status 4 for not-found. Recheck the unit name or install the package that provides it before assuming the service only needs systemctl enable.