DashRDP
RDP

How to List Running Services on Linux (Ubuntu, Debian, CentOS)

When managing servers, whether local, cloud-based, or hybrid, knowing which services are currently running is crucial for system monitoring, debugging, and...

How to List Running Services on Linux (Ubuntu, Debian, CentOS)
5 min read

Last updated on October 24, 2025

Share this article

When managing servers, whether local, cloud-based, or hybrid, knowing which services are currently running is crucial for system monitoring, debugging, and security. A clear overview of active processes helps administrators ensure that every essential component of the system is operating as expected.

If you’re running your servers on the best Linux VPS hosting, understanding how to list and manage services ensures that your infrastructure stays reliable, secure, and optimized for performance. Whether you’re troubleshooting a slow server or verifying that your web stack is working, knowing how to list services in Linux is an essential skill for every system administrator and DevOps professional.

What Are Services in Linux?

In Linux, a service (also known as a daemon) is a background process that performs specific tasks such as running web servers, database engines, or network utilities. These services start automatically at boot or can be manually controlled through commands.

Common examples include:

  • sshd – Secure Shell daemon for remote connections
  • nginx or apache2 – Web servers
  • mysql or postgresql – Database services

Each of these daemons plays a critical role in the smooth functioning of your system. Without them, everyday server operations such as file sharing, network communication, or database queries would fail.

Keeping track of these services helps you:

  • Ensure essential daemons are always running
  • Troubleshoot startup and dependency issues
  • Optimize overall system performance.
  • Improve server security by disabling or removing unused services.

If a service fails to start at boot or stops unexpectedly, it can affect uptime or even cause data loss. That’s why regular service monitoring is an essential part of Linux server management.

Checking Which Init System Your Linux Uses

Before listing running services, it’s essential to know which init system your Linux distribution is using. Modern Linux distributions primarily use systemd, but older versions may rely on init or upstart.

Run the following command to identify your init system:

ps -p 1 -o comm=

Output examples:

  • systemd → uses systemd (modern and most common)
  • init or upstart → older systems

Note:
Ubuntu 16.04+, Debian 8+, and CentOS 7+ all use systemd by default. However, embedded systems or minimal installations might still use SysV init scripts.

Understanding your init system helps you choose the correct commands and management tools for listing and controlling services.

How to List Services on Ubuntu / Debian

1. Using systemctl systemctl (Recommended for systemd)

The systemctl command is the preferred way to list running services in Linux for modern systems. It interacts directly with systemd and provides detailed control over all active and inactive units.

List all active services

sudo systemctl list-units —type=service

List all services (including inactive and failed)

sudo systemctl list-units —type=service –all

Show only running services

sudo systemctl list-units —type=service –state=running

List services enabled on boot

sudo systemctl list-unit-files —type=service –state=enabled

Show failed services

sudo systemctl list-units —type=service –state=failed

Check specific service status

sudo systemctl status ssh

This command gives you detailed information such as whether the service is active, when it started, its process ID (PID), and any recent log entries.

2. Using service Command (Legacy)

For older or compatibility-based systems that don’t rely on systemd, the traditional SysVinit command still works.

List all services

service —status–all

Show only running services

service –status-all | grep ‘\[ + \]’

You’ll see output like:

[ + ]  apache2

[ – ]  bluetooth

[ + ]  cron

[ ? ]  hwclock.sh

While not as detailed as systemctl, this method is simple and fast for checking service status on older Debian or Ubuntu systems.

How to List Services on CentOS / RHEL

CentOS 7+ and RHEL 8+ also rely on systemd. The syntax is almost identical to Ubuntu/Debian, making it easy to switch between distributions.

List running services

sudo systemctl list-units —type=service –state=running

List enabled services

sudo systemctl list-unit-files —type=service –state=enabled

Show failed services

sudo systemctl list-units —type=service –state=failed

You can also view which services are consuming the most resources using:

top -c

or check the logs for any service using:

journalctl -u nginx

For older CentOS (6 and below) versions, use:

service –status-all

chkconfig –list

The chkconfig command is particularly useful to see which services are configured to start at boot time.

Useful Filters & Examples

Here are some practical and advanced filtering examples to help you quickly analyze and manage services on your system.

Search for a specific service

systemctl list-units –type=service | grep apache

Show only inactive services

systemctl list-units –type=service –state=inactive

Count total running services

systemctl list-units –type =service –state=running –no-legend | wc -l

Check all enabled but not active services

systemctl list-unit-files —type =service –state=enabled | while read svc state; do

  if ! systemctl is-active –quiet “$svc”; then

    echo “$svc is enabled but not running”

  fi

done

Pro Tip:

You can combine these commands with monitoring tools such as htop, glances, or nmon to get real-time insights into active daemons, CPU load, and memory usage.

Additionally, running:

sudo systemctl list-units –failed

helps identify problematic services that may be causing performance or stability issues.

Final Thoughts

Learning how to list running services in Linux is one of the most practical skills for system administrators and DevOps engineers. It not only helps you ensure that critical components like web servers, databases, and networking daemons are active but also aids in maintaining security by spotting unnecessary or unknown processes.

Regularly reviewing active services, disabling those not in use, and ensuring only trusted daemons are enabled at boot can significantly reduce vulnerabilities and improve server performance.

Whether you manage Ubuntu, Debian, or CentOS, mastering these simple commands will help you maintain a clean, efficient, and secure Linux environment.

Share this article