🚀 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 connectionsnginx: web servercron: schedules recurring tasksfail2ban: 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
.servicefiles!