
Service management is crucial in Linux operating systems. Systemd is the default system and service manager used in modern Linux distributions. It provides powerful tools for starting, stopping, enabling services, and analyzing logs.
In this article, I will explain how to manage services with Systemd, important commands, and how to create custom service files.
1. What is Systemd and Why is it Important?
Systemd is a system service that manages the boot process (init system) in Linux. Previously, systems like SysVinit and Upstart were used, but Systemd has become the standard in the Linux world because it is faster, more reliable, and more flexible.
Advantages of Systemd
- ✅ Provides faster boot times with parallel startup.
- ✅ Can manage service dependencies.
- ✅ Offers log management and analysis with
journalctl
. - ✅ Supports dynamic service startup and monitoring.
2. Managing Services with Systemd (systemctl Commands)
The main tool used for managing services in Systemd is systemctl
. Here are the basic systemctl commands:
Starting, Stopping, and Restarting Services
Action | Command |
---|---|
Start service | sudo systemctl start service_name |
Stop service | sudo systemctl stop service_name |
Restart service | sudo systemctl restart service_name |
Check service status | systemctl status service_name |
Reload service | sudo systemctl reload service_name |
Example Usage:
To check the status of a web server:
systemctl status apache2
If Apache is not running, to start it:
sudo systemctl start apache2
3. Enabling Services to Start Automatically
Sometimes, you may want certain services to start automatically on system boot. For that, you can use:
- Enable automatic start:
BASH
sudo systemctl enable service_name
- Disable automatic start:
BASH
sudo systemctl disable service_name
- List all installed services:
BASH
systemctl list-units --type=service
4. Creating Custom Service Files (.service)
To create a custom service in Linux, we use Systemd service files.
Example: A Simple Service File
To run a Python script as a Systemd service:
1️⃣ Create the Service File:
sudo nano /etc/systemd/system/sample_service.service
2️⃣ Add the service content:
[Unit]
Description=Sample Systemd Service
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/user/script.py
Restart=always
User=user
Group=user
[Install]
WantedBy=multi-user.target
3️⃣ Activate the service:
sudo systemctl daemon-reload
sudo systemctl enable sample_service
sudo systemctl start sample_service
After these steps, your Python script will automatically run when the system starts! 🚀
5. Viewing Systemd Logs (journalctl)
To view the error logs of services, use the journalctl
command.
- View all Systemd logs:
BASH
journalctl -xe
- View logs for a specific service:
BASH
journalctl -u service_name --no-pager
- View real-time logs:
BASH
journalctl -u service_name -f
6. Systemd Error Recovery and Debugging
If a service is not working properly, you can follow these steps:
- ✅ Check the service status:
BASH
systemctl status service_name
- ✅ Inspect logs in detail:
BASH
journalctl -u service_name -xe
- ✅ Restart the service:
BASH
sudo systemctl restart service_name
- ✅ Reload the daemon:
BASH
sudo systemctl daemon-reexec
Systemd is a powerful tool for starting, stopping, and monitoring services in Linux systems.
Related Articles

Advanced File and User Management in Linux
