🚀 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.

For beginners, this command might seem intimidating at first.
Don’t worry — we’ll go over everything step by step, from the basics to more advanced usage.


🔧 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

⚠️ Warning: 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.

Next step? Learn how to create your own custom .service files!