如何在 Ubuntu 中列出所有服务?

您需要知道系统上正在运行哪些服务。 今天,我们将讨论如何在 Ubuntu 中列出所有服务。 服务是可用于 Linux 系统正常运行的后台应用程序。 每当系统需要特定服务时,它就会启用它。 在 Ubuntu 中, systemd 负责处理系统及其服务。

在本文中,我们将研究列出系统中可用服务的各种方法。

使用服务命令

顾名思义,service 命令列出了服务及其在终端上的状态。 我们运行命令:

service --status-all 
使用“service”命令列出服务

第一次运行该命令可能需要一段时间,因为它从以下位置收集服务 '/etc/init.d/'目录。 每个服务名称前的符号表示服务的状态。 '[ + ]' 代表一个正在运行的服务,而 '[ - ]' 表示停止服务。

1. 只显示正在运行的服务

service 命令,前提是用户了解 grep 命令。 它是通过以下方式完成的:

service --status-all | grep '[ + ]' 
列出正在运行的服务

grep 命令是一个 Linux 工具,用于从文本中捕获某些模式或单词。 管道 '|' 符号表示将一个命令的输出转移到下一个命令的输入。

2. 只提取停止的服务

同样,上述方法可用于通过以下方式列出所有已停止的服务:

service --status-all | grep '[ - ]' 
列出停止的服务列出停止的服务

直接从 /etc/init.d 列出服务

得知事实后, service 命令从中提取服务 /etc/init.d 目录,我们可以列出目录的内容来绕过源代码每次运行 service 命令。

ls /etc/init.d 
列出服务 Ls 命令直接从“/etc/init.d”列出服务

ls 命令用于列出 Linux 中任何目录的内容。 这 绿色 对于每个文件名表示一个可执行文件。

使用这种方法列出 Ubuntu 中的所有服务的唯一缺点是我们无法弄清楚每个服务的状态。

使用 systemctl 命令

systemctl 代表 systemd 控制,即该命令负责 systemd. 为了列出所有可用的服务,我们运行:

systemctl --type service --all 
列出服务 Systemctl All使用“systemctl”列出所有服务

systemctl 提供了大量的信息相比 service 命令,原因是 systemctl 是系统服务管理器的主要命令, systemd.

让我们了解输出中的每一列:

  • 单元 —— systemd 将其管理的每个资源视为一个单元。 此处,UNIT 表示服务名称。
  • 加载 – 服务是否在启动后加载到内存中。
  • 积极的 – 服务当前处于活动状态还是非活动状态。
  • – 服务的当前状态。
  • 描述 – 特定服务的简短描述。

可以有几个过滤器应用于上述命令来获取某些结果。

1. 只列出已加载和活动的服务

为了仅列出已加载和活动的服务,我们将省略 -all 选项。

systemctl --type service 
列出服务加载的服务仅列出加载的服务

输出列保持与以前相同。 每当我们运行 systemctl 命令,在输出的末尾还会显示一个简短的统计信息。

列出服务统计‘systemctl’ 结束统计

在图中,我们可以找出系统中加载的单元/服务的数量。

2. 只列出正在运行的服务

要仅列出正在运行的服务,我们运行:

systemctl --type service --state running 
列出正在运行的服务 Systemctl仅列出正在运行的服务

很明显,只有加载的和活动的服务才会运行。 因此,我们可以省略 --all 命令中的选项。 要找出正在运行的服务的数量,我们可以滚动到输出的底部。

3. 只列出停止的服务

我们可以通过以下方式列出停止/退出的服务:

systemctl --type service --all --state exited  
列出停止的服务 Systemctl仅列出停止的服务

同样使用 active , inactive 或者 loaded 状态,我们可以根据需要过滤服务列表。

结论

列出服务的最简单方法是使用 service 命令,但它缺少有关服务的信息,其中 systemctl 更有用。 任何命令的使用取决于用户需求的上下文。

我们希望本文提供了与 Ubuntu 或其他 Linux 发行版中的服务列表相关的足够信息。 如果我们错过了任何方法,请随时在下面发表评论。