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...
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.
Keep Reading
More from the blog
Guides, tutorials, and insights on RDP hosting and cloud infrastructure.



