Image

Photo by Davis Sanchez on Pexels
A service (also called a daemon process) is software that runs on a computer, generally in the background. This is usually because it's something that the administrator isn't likely to interact with directly.
For instance, a network service runs at the application layer to provide some form of service over a network. It's expected that client computers will contact the service for access. A common example is the Apache web server. It runs on a system so that devices connected to the internet can view a specific set of files on a computer.
Red Hat Enterprise Linux (RHEL) provides an environment where these network services can run. RHEL also provides a utility named systemd to help you manage these services.
systemd has been the default service manager since RHEL 7. It's the first thing that gets started (PID 1), and it is responsible for starting the rest of the system. It activates server daemons, system resources, and various other processes. With systemd, you can start, stop, and check the status of the network services running on your server. You interact with systemd by using the systemctl
command.
To start a given service, use:
$ sudo systemctl start <service>
For example, to start the sshd service, type:
$ sudo systemctl start sshd.service
You can ignore .service
and run the systemctl start sshd
command.
[ Free cheat sheet: Get a list of Linux utilities and commands for managing servers and networks. ]
You can list all loaded services on a server with:
$ sudo systemctl list-units --type=service
To stop a service, type:
$ sudo systemctl stop sshd
To find out whether a service is running, inactive, enabled, disabled, or has exited, use:
$ sudo systemctl status sshd
The systemctl
command also has is-active
and is-enabled
options to see whether a service is active or enabled. For example, to check if a service is active or enabled, run:
$ systemctl is-active sshd
This command gives two possible outputs. The service is either active
, which means it is running, or it's inactive
, which means it is stopped or not running.
You can configure a service to start automatically with the system so that you don't have to start it manually after the server reboots or restarts.
To enable a service, which means the service starts automatically when the server boots, use:
$ sudo systemctl enable sshd
To both start and enable a service, add the --now
option, like this:
$ sudo systemctl enable --now sshd
To check whether a service is enabled, enter:
$ sudo systemctl is-enabled sshd
When a service is enabled, it starts automatically at boot. When it's disabled, it doesn't start automatically at boot.
[ Free download: Advanced Linux commands cheat sheet. ]
To disable a service, so the service will not start automatically at boot time, run:
$ sudo systemctl disable sshd
Not everything uses systemctl
by default. Some applications are intended to be started manually. Of course, you can always add your own systemd service files when you need a network service to start automatically.
Systemd is full of features, and the systemctl
command gives you easy control over the services your computer runs.
I work as Unix/Linux Administrator with a passion for high availability systems and clusters. I am a student of performance and optimization of systems and DevOps. I have passion for anything IT related and most importantly automation, high availability, and security. More about me