您需要知道系统上正在运行哪些服务。 今天,我们将讨论如何在 Ubuntu 中列出所有服务。 服务是可用于 Linux 系统正常运行的后台应用程序。 每当系统需要特定服务时,它就会启用它。 在 Ubuntu 中, systemd
负责处理系统及其服务。
在本文中,我们将研究列出系统中可用服务的各种方法。
使用服务命令
顾名思义,service 命令列出了服务及其在终端上的状态。 我们运行命令:
service --status-all
第一次运行该命令可能需要一段时间,因为它从以下位置收集服务 '/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 命令用于列出 Linux 中任何目录的内容。 这 绿色 对于每个文件名表示一个可执行文件。
使用这种方法列出 Ubuntu 中的所有服务的唯一缺点是我们无法弄清楚每个服务的状态。
使用 systemctl 命令
systemctl
代表 systemd 控制,即该命令负责 systemd
. 为了列出所有可用的服务,我们运行:
systemctl --type service --all
systemctl
提供了大量的信息相比 service
命令,原因是 systemctl
是系统服务管理器的主要命令, systemd
.
让我们了解输出中的每一列:
- 单元 ——
systemd
将其管理的每个资源视为一个单元。 此处,UNIT 表示服务名称。 - 加载 – 服务是否在启动后加载到内存中。
- 积极的 – 服务当前处于活动状态还是非活动状态。
- 子 – 服务的当前状态。
- 描述 – 特定服务的简短描述。
可以有几个过滤器应用于上述命令来获取某些结果。
1. 只列出已加载和活动的服务
为了仅列出已加载和活动的服务,我们将省略 -all
选项。
systemctl --type service
输出列保持与以前相同。 每当我们运行 systemctl
命令,在输出的末尾还会显示一个简短的统计信息。
在图中,我们可以找出系统中加载的单元/服务的数量。
2. 只列出正在运行的服务
要仅列出正在运行的服务,我们运行:
systemctl --type service --state running
很明显,只有加载的和活动的服务才会运行。 因此,我们可以省略 --all
命令中的选项。 要找出正在运行的服务的数量,我们可以滚动到输出的底部。
3. 只列出停止的服务
我们可以通过以下方式列出停止/退出的服务:
systemctl --type service --all --state exited
同样使用 active
, inactive
或者 loaded
状态,我们可以根据需要过滤服务列表。
结论
列出服务的最简单方法是使用 service
命令,但它缺少有关服务的信息,其中 systemctl
更有用。 任何命令的使用取决于用户需求的上下文。
我们希望本文提供了与 Ubuntu 或其他 Linux 发行版中的服务列表相关的足够信息。 如果我们错过了任何方法,请随时在下面发表评论。