systemctl list-units --type=service lists service units that systemd currently has loaded. That is the quickest view of active services, but it is not a complete inventory of every installed service file. Use list-unit-files when you need boot configuration instead.

List running services

systemctl list-units --type=service --state=running

The ACTIVE and SUB columns describe current runtime state. A service can be running now even if it is disabled at boot, and an enabled service can be inactive until another unit triggers it.

List all loaded service units

systemctl list-units --type=service --all

Without --all, systemctl generally omits inactive units. Loaded units still do not equal every service installed on disk. For that inventory, run:

systemctl list-unit-files --type=service

The state column here describes whether a unit file is enabled, disabled, static, masked or linked. A static unit has no install section of its own and may be started as a dependency.

Find failed services

systemctl --failed --type=service

Then inspect one result and its recent log entries:

systemctl status example.service
journalctl -u example.service -b --no-pager

Replace example.service with the exact unit name. The -b option limits the journal to the current boot.

Check one service in scripts

systemctl is-active --quiet example.service
systemctl is-enabled example.service

is-active answers whether the unit is active now. is-enabled reports its unit-file configuration. Treat them as separate tests.

If systemctl itself fails

Use our systemctl environment checklist to check PATH, the distribution and PID 1. Containers and WSL sessions may not be booted with systemd. For practical service examples, see enabling SSH on Ubuntu and installing Docker Engine.

Sources and verification

Commands checked against the systemd systemctl reference on September 11, 2026. Unit names and available states vary by distribution and installed software.