Skip to main content
To start a service, run sudo systemctl start nginx. To make it start automatically at boot, run sudo systemctl enable nginx, or do both at once with sudo systemctl enable --now nginx. Check it with systemctl status nginx: a running service shows Active: active (running). These commands work on every modern Linux distribution that uses systemd, including Ubuntu, Debian, AlmaLinux and Rocky Linux.

Before you start

  • Connect with SSH. Commands that change a service need sudo; root can leave it out. Viewing status and lists works without it.
  • systemd is the program that starts and supervises services on your server. A unit is one thing it manages; services end in .service, and you can usually leave the suffix out.

systemctl commands at a glance

start and stop act now. enable and disable only change what happens at the next boot. A service can be running but disabled, or enabled but stopped.

How to start a service and enable it at boot

1

Start and enable

Expected output on the first enable:
2

Check the status

enabled on the Loaded line means it starts at boot. Press q to leave the status view.

Service names differ between distributions

Use the right name, or systemctl reports Unit ... not found. On Ubuntu 24.04, SSH listens through ssh.socket by default. If you change the SSH port, follow how to change the SSH port, not just a restart of ssh.

Restart or reload?

reload tells the program to reread its config while it keeps running, so open connections aren’t dropped. Not every service supports it; if it doesn’t, systemctl says so. sudo systemctl reload-or-restart nginx uses reload when possible and restart otherwise.
Before you restart SSH, a firewall or a network service, test the config first (sudo sshd -t, sudo nginx -t) and keep your current SSH session open. If a bad config locks you out of a VPS, use the VNC console. Never stop or mask the ssh/sshd service while you are connected through it.

How to list services

How to see why a service failed

1

Read the status

Look at the Active: line (for example failed (Result: exit-code)) and the last log lines underneath.
2

Read more of the log

See how to read logs with journalctl.
3

Fix and start again

After fixing the cause, clear the failed state and start it:

How to check it worked

Expected output:
To be fully sure the service comes back after a reboot, reboot in a quiet period with sudo reboot and check again.

Frequently asked questions

What is the difference between systemctl and service?

service nginx restart is an older command. On systemd systems it passes the request on to systemctl, so both work, but systemctl has more options such as enable and status.

Why does systemctl say “Failed to connect to bus” or “System has not been booted with systemd”?

You are in a container, chroot or rescue system where systemd isn’t running. On a normal VPS boot this doesn’t happen.

How do I edit a service’s settings without changing the package file?

Run sudo systemctl edit nginx. It creates an override file in /etc/systemd/system/nginx.service.d/ that survives package updates. See create a systemd service.

When do I need systemctl daemon-reload?

After you create or change a unit file by hand. systemctl edit does it for you.

VPS and dedicated server guides

Every server guide in one place.

Create a systemd service

Run your own app as a service.

Read logs with journalctl

Find out why a service failed.

Check open ports

See what a service listens on.

Kill a process

Stop a program that hangs.

Checked against the official systemctl manual on 4 November 2026. Our test container doesn’t run systemd as its init system, so service start and stop commands were not tested there. Commands can differ on other distributions or releases.

Need Extra Help?

If you encounter any issues, our support team is ready to assist:

Save on Your Hosting

Ready to upgrade your hosting? Use code KB20 at checkout for 20% off your first order!

Last Updated: November 2026