How do I list all currently running services in Fedora / RHEL / CentOS Linux server? How can I check the status of a service using systemd based CentOS/RHEL 7.x?

There are various ways and tools to find and list all running services under a Fedora / RHEL / CentOS Linux systems.

Red Hat / CentOS Check and List Running Services Command

Please note that systemd based system such as CentOS/RHEL 7.x and latest version of fedora use the systemctl command to list running services.

List running services using service command on a CentOS/RHEL 6.x or older

The syntax is as follows for CentOS/RHEL 6.x and older (pre systemd systems):
service --status-all
service --status-all | more
service --status-all | grep ntpd
service --status-all | less

Print the status of any service

To print the status of apache (httpd) service:
service httpd status

List all known services (configured via SysV)

chkconfig --list

List service and their open ports

netstat -tulpn

Turn on / off service

chkconfig service off
chkconfig service on
chkconfig httpd off
chkconfig ntpd on

ntsysv is a simple interface for configuring runlevel services which are also configurable through chkconfig. By default, it configures the current runlevel. Just type ntsysv and select service you want to run.

Red Hat / CentOS List Running Services using systemctl (RHEL/CentOS 7.x)

If you are using systemd based distro such as Fedora Linux v22/23/24/26/27/28/29 or RHEL/CentOS Linux 7.x+. Try the following command to list running services using the systemctl command. It control the systemd system and service manager.

To list systemd services on CentOS/RHEL 7.x+ use

The syntax is:
systemctl | more
systemctl | grep httpd
systemctl list-units --type service
systemctl list-units --type mount

To list all services:
systemctl list-unit-files
Sample outputs:

Fig.01: List all units installed on the CentOS /RHEL 7 systemd based system, along with their current states
Fig.01: List all units installed on the CentOS /RHEL 7 systemd based system, along with their current states

To view processes associated with a particular service (cgroup), you can use the systemd-cgtop command. Like the top command, systemd-cgtop lists running processes based on their service:
Sample outputs:

Path Tasks %CPU Memory Input/s Output/s / 85 0.3 240.1M - -
/system.slice/NetworkManager.service 2 - - - -
/system.slice/auditd.service 1 - - - -
/system.slice/crond.service 1 - - - -
/system.slice/dbus.service 1 - - - -
/system.slice/lvm2-lvmetad.service 1 - - - -
/system.slice/polkit.service 1 - - - -
/system.slice/postfix.service 3 - - - -
/system.slice/rsyslog.service 1 - - - -
/system.slice/sshd.service 1 - - - -
/system.slice/...tty.slice/getty@tty1.service 1 - - - -
/system.slice/systemd-journald.service 1 - - - -
/system.slice/systemd-logind.service 1 - - - -
/system.slice/systemd-udevd.service 1 - - - -
/system.slice/tuned.service 1 - - - -
/system.slice/wpa_supplicant.service 1 - - - -
/user.slice/user-0.slice/session-2.scope 1 - - - -
/user.slice/user-1000.slice/session-1.scope 4 - - - -

To list SysV services only on CentOS/RHEL 7.x+ use (does not include native systemd services)

chkconfig --list
Sample outputs:

Fig.02: List Sysv based services on systemd
Fig.02: List Sysv based services on systemd

How to check the status of a service using systemd

Say you want to check status of a service named sshd, run
$ systemctl status sshd.service
Sample outputs:

? sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 11:59:40 IST; 4 weeks 0 days ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 1540 (sshd) Tasks: 1 CGroup: /system.slice/sshd.service ??1540 /usr/sbin/sshd -D Nov 06 00:00:00 centos7-box sshd[27878]: Accepted publickey for vivek from port 37785 ssh2: RSA SHA256:GVszs/CD7zRUV6uFCp1c9/8OEgzI5RTD2TvPkglS0AA
Nov 12 14:15:44 centos7-box sshd[29290]: Accepted publickey for backup from port 59226 ssh2: ED25519 SHA256:uym82tbI4l6Gfl+uf/+lfzymbkhstTnAS35lcoa6VLU

One can verify that if a service named sshd is running (active) or not running (inactive) on a CentOS/RHEL 7.x+:
systemctl is-active sshd
systemctl is-enabled sshd
systemctl is-active nginx
systemctl is-enabled nginx
systemctl is-enabled httpd

Check whether a service is running or not running on a CentOS RHEL


For latest version of the CentOS/RHEL 7.x use the systemctl command and for older version try service command to show all services running under Centos or RHEL Server.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Facebook Comments

More Stuff

How do I check if a port is in use on Linux? I am a new Linux system user. I need to find out which process is listening on a port on Linux using the command line. How do you find out which pro...
How to change the ssh port on Linux or Unix server nixCraft Update... I am a new Linux/Unix server admin. How do I change the SSH Port for my Linux or Unix server using command line option? You can easily change the...
How do I know if my Linux is 32 bit or 64 bit? nixCraft I need to find out if my Linux server is running on 32-bit or 64-bit system. How do I know if my Linux is 32 bit or 64 bit? To check if your Linu...
How to update LXD container Ubuntu image from 16.04 to 18.04 nixCr... I run my app inside Ubuntu Linux 16.04 LTS lxd Linux container. To upgrade Ubuntu 16.04 to 18.04 LTS container, I run do-release-upgrade command, but ...
Spread the love

Posted by News Monkey