← Back to articles

Understanding systemctl: Manage Linux Services Like a Pro

9 Jul 2025 • Linux, Administration • 5 min read

Introduction

If you're managing a Linux server, you'll quickly come across the systemctl command. It allows you to control services (programs running in the background like Nginx, SSH, MySQL, etc.) and manage their automatic startup.

Think of systemctl as the control panel for all the background programs on your server. Just like a building manager controls heating, lights, and security systems, systemctl lets you control your server's services.


What is a service?

A service in Linux is a program that runs in the background (called a daemon). Examples of services:

  • sshd: enables SSH connections
  • nginx: web server
  • cron: schedules recurring tasks
  • fail2ban: blocks malicious IP addresses

What is systemctl?

systemctl is the command-line tool used to manage services under systemd, the modern initialization system used by most Linux distributions (Ubuntu, Debian, CentOS, Fedora...).

It allows you to:

  • start / stop a service
  • enable / disable its startup at boot
  • check its status
  • read related logs

Basic Commands

Check if a service is running

sudo systemctl status nginx

Replace nginx with the service name you want to check (e.g. ssh, cron, mysql, etc.).

Start a service

sudo systemctl start nginx

The service starts immediately but won't start automatically on the next reboot.

Stop a service

sudo systemctl stop nginx

Restart a service

sudo systemctl restart nginx

Reload service configuration (without full restart)

sudo systemctl reload nginx

Manage Startup at Boot

Enable automatic startup

sudo systemctl enable nginx

Disable automatic startup

sudo systemctl disable nginx

Enable and start now

sudo systemctl enable --now nginx

Checking & Debugging

View all active services

systemctl list-units --type=service

View logs of a specific service

journalctl -u nginx

To view recent errors:

journalctl -xe -u nginx

Remove a Service (Advanced)

If you installed a service manually and want to remove it:

sudo systemctl stop yourservice
sudo systemctl disable yourservice
sudo rm /etc/systemd/system/yourservice.service
sudo systemctl daemon-reload

Only do this if you understand what you're removing.


Tip: Find a service name

systemctl | grep your_program

Example:

systemctl | grep nginx

Conclusion

systemctl is one of the most powerful tools to manage a Linux server. By mastering it, you'll know how to control your services, troubleshoot errors, and ensure smooth system startup.

Make it a habit to check your services after each installation, update, or config change.