How to List, Manage, and Troubleshoot Services in Ubuntu

How to List, Manage, and Troubleshoot Services in Ubuntu

Ubuntu, a popular Linux distribution, offers a robust system for managing services. These services are background processes that start during boot or when manually invoked. They play a pivotal role in ensuring that the system runs smoothly, handling tasks like network management, logging, and more.

For webmasters and administrators, understanding how to manage these services is crucial. Knowing how to list, manage, and troubleshoot these services can be the difference between a smoothly running server and one riddled with issues.

Let’s get started.

Understanding Systemd

Ubuntu has transitioned to using systemd as its init system. This means that systemd is responsible for bootstrapping the user space and managing system processes. Before diving into commands, it’s essential to understand this shift as most service management commands will revolve around the systemctl utility provided by systemd.

When you boot up your Ubuntu server, the first process that runs is systemd. It’s responsible for initializing other services like the network manager, SSH daemon, and more. Think of systemd as the manager overseeing all other services on your system.

Listing All Services

To list all services, whether active, inactive, or failed, use the following command:

sudo systemctl list-units --type=service --all

This command provides a comprehensive list, showing the status of each service.

See also  How to Uninstall Ceph on Ubuntu

For example:

  apache2.service       loaded active running   The Apache HTTP Server
  cron.service          loaded active running   Regular background program processing daemon
  ssh.service           loaded active running   OpenBSD Secure Shell server

Checking the Status of a Specific Service

If you want to check the status of a specific service, use:

sudo systemctl status [service-name]

Replace [service-name] with the name of the service you’re interested in.

For example:

  ssh.service - OpenBSD Secure Shell server
  Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
  Active: active (running) since Tue 2023-10-24; 1 day ago

Starting and Stopping Services

To start a service:

sudo systemctl start [service-name]

For example:

sudo systemctl start apache2

The status should now show active (running).

To stop a service:

sudo systemctl stop [service-name]

For example:

sudo systemctl stop apache2

After this, if you check the status, it should show inactive (dead).

Enabling and Disabling Services at Boot

To ensure a service starts at boot:

sudo systemctl enable [service-name]

For example, to ensure the Cron service starts at boot:

sudo systemctl enable cron
Synchronizing state of cron.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable cron

To disable a service from starting at boot:

sudo systemctl disable [service-name]

Troubleshooting Failed Services

If a service fails, you can inspect its logs using:

sudo journalctl -u [service-name]

This command displays logs specific to the service, helping pinpoint issues.

See also  How to Setup and Use SSH on Ubuntu Server

For example, if the Apache service fails to start, you can inspect its logs:

sudo journalctl -u apache2
Oct 24 08:00:15 ubuntu-server apache2[1234]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using Set the 'ServerName' directive globally to suppress this message

This log entry indicates an issue with the server’s domain name configuration in Apache.

Commands Mentioned

  • sudo systemctl list-units –type=service –all – Lists all services
  • sudo systemctl status [service-name] – Checks the status of a specific service
  • sudo systemctl start [service-name] – Starts a specific service
  • sudo systemctl stop [service-name] – Stops a specific service
  • sudo systemctl enable [service-name] – Enables a service at boot
  • sudo systemctl disable [service-name] – Disables a service from starting at boot
  • sudo journalctl -u [service-name] – Views logs for a specific service


  1. What is systemd in Ubuntu?

    Systemd is an init system used in Ubuntu, responsible for bootstrapping the user space and managing system processes. It replaces older systems like Upstart and System V and offers tools like systemctl for service management.

  2. How do I view logs for a specific service?

    You can view logs for a specific service using the command: sudo journalctl -u [service-name]. This provides detailed logs to help troubleshoot any issues with the service.

  3. How can I ensure a service starts during boot?

    To ensure a service starts during boot, use the command: sudo systemctl enable [service-name]. This sets the service to automatically start on system boot.

  4. What’s the difference between starting and enabling a service?

    Starting a service using systemctl start initiates the service immediately, while enabling a service ensures it starts during the system boot. Conversely, stopping a service halts it, and disabling ensures it doesn’t auto-start during boot.

  5. Why might a service fail to start?

    A service might fail to start due to various reasons such as misconfiguration, missing dependencies, conflicts with other services, or underlying system issues. Checking the service’s logs using journalctl can provide insights into the cause of the failure.

See also  How to Uninstall CloudPanel on Ubuntu


Managing services in Ubuntu is a critical skill for any webmaster or system administrator. Whether you’re managing a dedicated server or a VPS, understanding the intricacies of systemd and the systemctl utility ensures that your server runs efficiently.

By following this guide, you’ll be well-equipped to list, manage, and troubleshoot services, ensuring optimal server performance and uptime.

Always remember to consult logs and documentation when in doubt, and never hesitate to seek community support for complex issues.


Leave a Reply

Your email address will not be published. Required fields are marked *