25 systemd Commands Every Linux Admin Should Master

Updated Jun 2026 · originally published Jun 2026 · Tested on Ubuntu 24.04, Debian 12, RHEL 9, Rocky Linux 10

systemd runs nearly every modern Linux distribution — it’s the init system that starts at boot and manages services, logging, scheduling, and system state. These 25 commands are the ones that matter for day-to-day administration, grouped by task, each with an example. For the deeper topics we have dedicated references linked inline.

Controlling services

1. Start a service

sudo systemctl start nginx

2. Stop a service

sudo systemctl stop nginx

3. Restart a service

sudo systemctl restart nginx

4. Reload config without downtime

sudo systemctl reload nginx    # re-reads config, keeps connections

5. Reload or restart, whichever the service supports

sudo systemctl reload-or-restart nginx

All of these and the differences between them are covered in the systemctl reference.

Checking state

6. Full status with recent logs

systemctl status nginx

7. Is it running? (scriptable)

systemctl is-active nginx      # prints "active" / "inactive" / "failed"

8. Is it enabled at boot?

systemctl is-enabled nginx

9. List everything that has failed

systemctl --failed

Run this after every reboot — a silently failed service is a common surprise.

10. Check if a specific service is up

For health checks and checking several services at once, see how to check if a service is running.

Boot behavior

11. Enable a service at boot, and start it now

sudo systemctl enable --now nginx

12. Disable at boot, and stop it now

sudo systemctl disable --now nginx

13. Mask a service (block it entirely)

sudo systemctl mask postfix      # can't be started, even as a dependency
sudo systemctl unmask postfix

Listing and inspecting

14. List active services

systemctl list-units --type=service

15. List every installed service and its boot state

systemctl list-unit-files --type=service

16. Show the effective unit file

systemctl cat nginx

17. Show every property of a unit

systemctl show nginx -p ExecStart -p User -p Restart

18. List what a unit depends on

systemctl list-dependencies nginx

Reading logs with journalctl

19. Logs for one service

journalctl -u nginx

20. Follow logs in real time

journalctl -u nginx -f

21. Logs since last boot

journalctl -b

22. Errors only

journalctl -p err -b

The full set of time, priority, and boot filters is in journalctl: view and filter logs.

Editing units and scheduling

23. Reload unit files after editing

sudo systemctl daemon-reload

Forgetting this after editing a unit file is the most common reason a change “doesn’t take.” To write a service from scratch, see how to create a systemd service.

24. List active timers

systemctl list-timers

systemd timers are the modern alternative to cron. For when to use which, see systemd timers vs cron.

25. Control system state

sudo systemctl reboot      # restart the machine
sudo systemctl poweroff    # shut down
systemctl is-system-running    # overall health: running / degraded

When something breaks

The command that fails most often is a service that won’t start. The systematic fix — reading the exit code, checking the journal, and the common causes — is in systemd service failed to start.

FAQ

My distro uses crond/httpd, another uses cron/apache2 — does that change these? Service names differ by distribution, but every systemctl and journalctl command here is identical across distros. Use systemctl list-units --type=service to find the exact name on your system.

Do these need root? Read-only commands (status, is-active, list-units, cat, journalctl) work without root. Anything that changes state (start, enable, mask, daemon-reload) needs sudo.

Is systemd on every Linux distribution? Nearly all major ones — Ubuntu, Debian, RHEL, Fedora, Rocky, SUSE, and Arch. A few minimal or specialized distros use alternatives, but for mainstream server work, systemd is universal.

For the full services toolkit, browse the services and systemd topic.