Managing services with systemctl in Linux

Systemd is the default init system for most modern Linux distributions, including Ubuntu, CentOS, Fedora, and Debian. It plays a crucial role in managing system services and processes. To harness the power of systemd, you need to become familiar with the systemctl command. In this blog post, we'll explore essential systemctl commands to manage a service running on a Linux system.

What is systemctl?

systemctl is a command-line tool for controlling the systemd system and service manager. It allows you to manage system services, inspect their status, start, stop, enable, or disable them, among other things. This tool simplifies sysadmin tasks, making it easier to maintain a healthy Linux system.

How to List All Enabled and Disabled Services

To get an overview of all services on your system, both enabled and disabled, you can use the following command:

systemctl list-unit-files -at service

Output:

This command provides a comprehensive list of services, their statuses, and whether they are set to start automatically during boot.

How to List All Services and Their Statuses

To see a detailed list of all services and their current statuses, including active, inactive, and failed services, use the following command:

systemctl list-units -at service

Output:

This command gives you a real-time snapshot of the status of all services on your system.

How to List Running Services

If you want to view only the services that are currently running, you can filter the list using this command:

systemctl list-units -at service --state=running

Output:

This is particularly useful when you need to identify which services are actively using system resources.

How to Display the Content of a Service File

To examine the content of a service file, such as the configuration for the rsyslog service, use the systemctl cat command:

systemctl cat rsyslog

This command displays the contents of the service file, making it easier to understand its configuration.