如何使用 systemctl 命令列出 Linux 服务


如果您是 Linux 用户或管理员,您需要知道如何管理系统上的服务。服务是在后台运行并提供基本功能的程序,例如网络、打印、日志记录等。

但是如何在 Linux 上列出、启动、停止、启用、禁用或重新启动服务呢?答案是systemctl命令。此命令是 systemd的一部分,它是一个适用于 Ubuntu 和 Debian 等 Linux 发行版的现代系统和服务管理器。

如果您是 Linux初学者 ,并且想要使用 systemctel管理这些服务,请按照以下步骤操作。

使用 systemctl 列出所有服务

要列出 Linux 系统上的所有服务,请在终端中运行以下命令:

sudo systemctl list-units –类型服务

这将显示一个包含五列的表格:UNITLOADACTIVESUB描述

UNIT列显示服务单元文件的名称,它是服务的配置和定义文件。该文件包含有关该服务的用途以及如何管理该服务的信息。您还可以在DESCRIPTION列中查看服务的快速描述符。

LOAD列显示服务单元文件是否加载到内存中。 ACTIVE列显示它是否正在运行的服务。最后,SUB列显示服务的子状态,例如正在运行、已退出或失败。

您还可以使用-a–all选项代替–type服务来列出所有类型的单位,而不仅仅是服务.

使用 systemctl 列出活动服务

如果您只想查看系统上当前活动(正在运行)的服务,请在 Linux 终端中运行以下命令:

sudo systemctl list-units –type service –state active

这将过滤掉不活动(已停止)或失败的服务。

使用 systemctl 列出非活动服务

同样,如果您只想查看系统上当前不活动(已停止)的服务,请在终端中运行以下命令:.

sudo systemctl list-units –type service –state inactive

这将过滤掉活动(正在运行)或失败的服务。

使用 systemctl 列出失败的服务

如果您想查看系统上未能启动或停止的服务,请打开终端并运行以下命令:

sudo systemctl list-units –type service –state failed

这将过滤掉任何当前活动(正在运行)或不活动(已停止)的服务。

使用 systemctl 列出启用的服务

要查看哪些服务在系统启动时自动启动,请在终端中运行以下命令:

sudo systemctl list-unit-files –类型服务 –状态已启用

这将显示一个包含两列的表格:UNIT FILESTATE。 UNIT FILE 列显示服务单元文件的名称。 STATE 列显示服务是否启用。

使用 systemctl 列出禁用的服务

要查看哪些服务被禁用并且不会在系统启动时自动启动,请打开 Linux 终端并运行以下命令:

sudo systemctl list-unit-files –类型服务 –状态已禁用

这将过滤掉已启用或屏蔽的服务。

使用 systemctl 显示服务的详细信息

要显示有关系统上特定服务的更多详细信息,请在终端中运行以下命令:

sudo systemctl status <服务名称>

替换为您要检查的服务单元文件的名称。

这将向您显示描述、加载状态、活动状态、子状态、进程 ID (PID)、内存使用情况、CPU 使用情况和最近的服务日志等信息。

您还可以使用 show 子命令而不是 status 以 name=value格式显示所有服务属性。

使用 systemctl 启动服务

要启动系统上已停止的服务,请在 Linux 终端中运行以下命令:

sudo systemctl start <服务名称>

替换为您要启动的服务单元文件的名称.

这将在后台启动服务并返回到提示符。您可以使用 status 子命令来验证服务是否正在运行。

使用 systemctl 停止服务

要停止系统上正在运行的服务,请在终端中运行以下命令:

sudo systemctl stop <服务名称>

替换为您要停止的服务单元文件的名称

这将停止后台服务并返回到提示符。您可以使用 status 子命令来验证服务是否已停止。

使用 systemctl 重新启动服务

想要编辑并重新加载服务的配置文件并应用更改吗?如果这样做,您需要随后重新启动服务。

要重新启动系统上运行的服务,请打开终端并运行以下命令:

sudo systemctl restart <服务名称>

替换为您要重新启动的服务单元文件的名称。

这将在后台停止和启动服务并返回到提示符。您可以使用 status 子命令来验证服务是否正在运行。

使用 systemctl 重新加载服务

某些服务支持在不停止和启动的情况下重新加载其配置。重新加载服务允许您对这些服务的配置文件进行细微更改,而无需重新启动它们。这比重新启动更快且破坏性更小。

要重新加载支持此功能的服务,请在终端中使用以下systemctl命令:

sudo systemctl reload <服务名称>

替换为您要重新加载的服务单元文件的名称。

这将在后台重新加载服务并返回到提示符。您可以使用 status 子命令来验证服务是否正在运行。

使用 systemctl 启用服务

要使服务在系统启动时自动启动,请在终端中运行以下命令:

sudo systemctl启用<服务名称>.

替换为您要启用的服务单元文件的名称。

这将创建一个从服务单元文件到 /etc/systemd/system下位置的符号链接,告诉 systemd 在引导时启动它。

您还可以使用–now选项同时启用和启动服务。例如:

sudo systemctl enable –now <服务名称>

使用 systemctl 禁用服务

要禁止某个服务在系统启动时自动启动,请在 Linux 终端中运行以下命令:

sudo systemctl禁用<服务名称>

替换为您要禁用的服务单元文件的名称。

这将从 /etc/systemd/system 中删除符号链接,该链接告诉 systemd 不要在引导时启动它。

您还可以使用–now选项同时禁用和停止服务:

sudo systemctl disable –now <服务名称>

使用 systemctl 列出屏蔽服务

屏蔽服务意味着将其单元文件链接到/dev/null,这可以防止它被systemd加载或操作。这增加了一层额外的保护。

要查看系统上哪些服务被屏蔽且无法手动或自动启动或停止,请在 Linux PC 的终端中运行以下命令:

sudo systemctl list-unit-files –type service –state masked

屏蔽服务列表将显示在列表中(屏蔽列在STATE列下)

使用 systemctl 屏蔽服务

在终端中运行此命令以屏蔽服务在系统上手动启动、停止或自动停止:

sudo systemctl mask <服务名称>

替换为您要屏蔽的服务单元文件的名称。

这将创建从服务单元文件到 /dev/null的符号链接,以防止它被 systemd 加载或操作。.

使用 systemctl 揭露服务

您可以取消屏蔽之前屏蔽的服务。这将删除到 /dev/null 的符号链接并允许它在其他地方使用和加载。

要取消屏蔽之前在系统上屏蔽的服务,请运行以下命令:

sudo systemctl unmask <服务名称>

替换为您要取消屏蔽的服务单元文件的名称。

控制您的 Linux PC

如果您的 Linux PC 使用 systemd 来管理系统服务,则可以使用 systemctl命令来管理它们。您可以启动、停止、重新加载、禁用和控制您的服务,从而更好地控制您的 Linux PC。

管理电脑的另一种方法是限制对某些文件的访问。您可以在 Linux PC 上使用 chmod 命令 允许(或禁止)访问。

不确定您的 Linux 发行版是否适合?您应该尝试 另一个顶级 Linux 发行版 ,甚至尝试 便携式Linux发行版 。使用便携式发行版可以让您轻松地在它们之间切换。

.

相关文章:


26.04.2023