- How to list all enabled services from systemctl?
- 9 Answers 9
- How can I see all services in Ubuntu?
- How to list all services in Ubuntu?
- List all services using the systemctl command
- How to list systemd unit files?
- How to list systemd service unit files using states?
- List all active or running services
- List all excited services
- List all stopped or dead services
- Managing systemd services using systemctl
- View service status using systemctl command
- More commands to list services in Ubuntu
- Use of pstree command
- List firewall services
- List top control groups with resource utilization
- Conclusion
- About the author
- Samreena Aslam
How to list all enabled services from systemctl?
How can I list all enabled services from systemctl ? I know running systemctl command by itself lists all services, but I would like to only get the enabled ones.
Fascinating. The lowest rated answer is the most «correct» answer, even though it is clearly not the best answer. This excellent question (and its answers) is an interesting example of how systemd violates the long-standing (and brilliant) design principles of Unix & Co. @FelipeAlvarez complains that the most-accepted answer assumes systemd follows the unix design philosopy, but systemd/systemctl can do exactly what he wants (most experienced users will just consider that complete bloat). I begin to see more clearly why Linus Torvalds is so vehemently critical of systemd.
If you want to list «templated» services (blabla@instance.service), do not forget to add «—all» — thanks to @rafdouglas below.
9 Answers 9
systemctl list-unit-files | grep enabled will list all enabled ones.
If you want which ones are currently running, you need systemctl | grep running .
Use the one you’re looking for. Enabled, doesn’t mean it’s running. And running doesn’t mean it’s enabled. They are two different things.
Enabled means the system will run the service on the next boot. So if you enable a service, you still need to manually start it, or reboot and it will start.
Running means it’s actually running right now, but if it’s not enabled, it won’t restart when you reboot.
annoying to have to use an external tool (grep) to show this vital information. But thank you for showing us the way 🙂
@FelipeAlvarez Correct. But that’s how Linux works. Many small binaries that work well with each other. systemctl does what is asked, it lists services. There is no filtering command built-in to systemctl because grep already exists and can do that well with any program’s output. It’s how it’s always been 🙂
I agree and so it should be. But, systemd already tries to do SO much that I wonder why it can’t list enabled services?
systemctl | grep running do not list anything to me! Even if something is running is only listed as for his status like: enabled, disabled, masked, static
—state=
The argument should be a comma-separated list of unit LOAD , SUB , or ACTIVE states. When listing units, show only those in the specified states. Use —state=failed to show only failed units.
LOAD : Reflects whether the unit definition was properly loaded.
ACTIVE : The high-level unit activation state, i.e. generalization of SUB .
SUB : The low-level unit activation state, values depend on unit type.
Though you can also use this to only show enabled units with:
systemctl list-unit-files --state=enabled
If a unit is enabled that means that the system will start it on startup. Though setting something to enabled doesn’t actually also start it so you will need to do that manually, or reboot the system after setting it to enabled .
How can I see all services in Ubuntu?
System services are the processes or system programs known as ‘daemons’ that continuously run in the background. These services wait for client requests and are responsible for how the system works and how it communicates with other programs. When working in a Linux environment, including Ubuntu, you can easily manage all system services (start, stop, restart, enable at system boot, etc.) through a service manager. Most of the modern Linux distributions, such as Ubuntu, now use a process manager known as ‘systemd’. The systemd is a service manager in the Ubuntu system and used to replace the ‘init’ process. The systemd services manager is controlled by the primary command-line tool ‘systemctl’ command.
We will show you the various techniques in this tutorial related to listing or viewing all services in the Ubuntu 20.04 system.
How to list all services in Ubuntu?
Various services are running in the background of your Ubuntu Linux distribution. While working as a system administrator, you must know how to view all services, including system services such as (login, process management, syslog, cron jobs). You must have the knowledge to view all network services (remote login, web hosting, file transfer, DNS and DHCP, etc.) using the systemctl command and other ways you can control or manage all Linux services. We will also discuss this in this article.
List all services using the systemctl command
When the systemctl command is used without any arguments, in this case, it displays the list of loaded systemd units, including services either these are active or not.
The following command will also display all services unit files:
In the output, the details about UNIT, LOAD, ACTIVE, SUB, and service Description displays in the form of columns as follows:
- UNIT This column shows the corresponding details about the systemd unit name.
- LOAD The column displays the information about the unit, either currently loaded in the memory or not.
- Active This column shows whether the systemd unit is active or not.
- SUB This column shows the running state of the systemd unit.
- DESCRIPTION This column displays the short details about the unit.
How to list systemd unit files?
The below-mentioned will show the all available systemd unit files rather than their type and running status info:
Use the grep command in case you are searching for a specific unit file. For example, the below command will search for an apache2 unit file:
If you want to search for a specific unit file, you can also perform this action using the grep command.
For example, we want to search an apache2 service unit file by using the grep command as follows:
The above command will retrieve all unit files related to the apache2 service that you can see in the following screenshot:
How to list systemd service unit files using states?
The following systemctl command will show you the information about all enabled systemd unit files on Ubuntu 20.04 system:
To display all disabled systemd unit files, run the below-mentioned command:
The services that are enabled on your system automatically start on system reboot.
List all active or running services
Using the ‘systemctl’ command, you can filter active or running services from the all services list as follows:
List all excited services
By running the below-given command, you can easily list all services with the excited state:
List all stopped or dead services
With the help of the following command, you can easily list all disabled services on the terminal window:
Managing systemd services using systemctl
The systemctl is the most commonly used command to manage the systemd unit files and services in Ubuntu 20.04 distribution. Users can enable, disable, start and stop services using the following commands respectively.
$ sudo systemctl enable service-name
$ sudo systemctl disable service_name
$ sudo systemctl start service_name
$ sudo systemctl disable service-name
Using the above commands, you can control each service state based on your requirements.
View service status using systemctl command
To view the detailed information about a particular service, use the below-mentioned command:
For example, we want to check the complete status of the ‘ssh’ service. In this case, by running the following command, you can display the complete status of the ssh service as follows:
More commands to list services in Ubuntu
Use of pstree command
Using the ‘pstree’ command, you can list all running Ubuntu services in the form of the tree structure as follows:
List firewall services
By running the following command, the user can easily list firewall services and ports:
List top control groups with resource utilization
The ‘systemd-cgtop’ command is used to display the top control groups by their resource utilization as follows:
The previous Ubuntu distributions use the ‘service’ command to list all system services as follows:
You can also view all services by directly listing the /etc/init.d directory in older Ubuntu systems as follows:
Conclusion
We learned how to list all services in Ubuntu 20.04 system using the systemctl command. We have also experienced various commands that are also helpful in listing all Ubuntu services. Most of the commands, like the service command, are obsolete now. In the latest Ubuntu distribution, system administrators use ‘systemctl’ to get the details about all systemd services. The systemctl command also offers advanced features and is quite more useful as compared to the other service listing commands.
About the author
Samreena Aslam
Samreena Aslam holds a master’s degree in Software Engineering. Currently, she’s working as a Freelancer & Technical writer. She’s a Linux enthusiast and has written various articles on Computer programming, different Linux flavors including Ubuntu, Debian, CentOS, and Mint.