The systemd command set on one page. This pairs with the systemd post — read that for the why, keep this for the how. systemctl is the modern tool; the SysV-era column (service, chkconfig, update-rc.d) is what you will still meet on older boxes with no systemd. Anything that changes state wants sudo. A unit name works with or without the .service suffix.
Manage a service now
Task
systemctl
SysV-era
Start
systemctl start NAME
service NAME start
Stop
systemctl stop NAME
service NAME stop
Restart (full bounce)
systemctl restart NAME
service NAME restart
Reload config only
systemctl reload NAME
service NAME reload
Reload, or restart if it can’t
systemctl reload-or-restart NAME
—
Start at boot (enable / disable)
Task
systemctl
SysV-era
Start at every boot
systemctl enable NAME
chkconfig NAME on / update-rc.d NAME enable
Do not start at boot
systemctl disable NAME
chkconfig NAME off / update-rc.d NAME disable
Enable and start now
systemctl enable --now NAME
—
Disable and stop now
systemctl disable --now NAME
—
Is it set to start at boot?
systemctl is-enabled NAME
chkconfig --list NAME
Check state
Task
Command
Full status + recent logs
systemctl status NAME
Just “is it running?” (script-friendly)
systemctl is-active NAME
List running services
systemctl list-units --type=service
List every installed unit file
systemctl list-unit-files --type=service
Show only what has failed
systemctl --failed
Logs — journalctl
Task
Command
Everything a service logged
journalctl -u NAME
Follow live (like tail -f)
journalctl -u NAME -f
Just this boot
journalctl -u NAME -b
Since a time
journalctl -u NAME --since "1 hour ago"
Errors and worse only
journalctl -u NAME -p err
How much disk the journal uses
journalctl --disk-usage
Unit files
Task
Command / path
Your own unit files live here
/etc/systemd/system/
Package-provided ones live here
/lib/systemd/system/
Re-read units after editing
systemctl daemon-reload
Show a unit’s contents
systemctl cat NAME
Add an override (safe)
systemctl edit NAME
Edit the whole unit
systemctl edit --full NAME
Targets and power
Task
Command
Current default target
systemctl get-default
Boot to console, no GUI
systemctl set-default multi-user.target
Boot to a desktop
systemctl set-default graphical.target
Reboot / power off
systemctl reboot / systemctl poweroff
Warning
On a remote box, never stop or disable the service you are connected through — systemctl stop sshd over SSH locks you straight out. Mind firewalls and networking services the same way. And remember daemon-reload after editing any unit file, or systemd carries on using the old version.