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
Start a service
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
Stop a 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
systemctl command also has
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.
Enable a service
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. ]
Disable a service
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.