如果您是 Linux 用户或管理员,您需要知道如何管理系统上的服务。服务是在后台运行并提供基本功能的程序,例如网络、打印、日志记录等。
但是如何在 Linux 上列出、启动、停止、启用、禁用或重新启动服务呢?答案是systemctl命令。此命令是 systemd的一部分,它是一个适用于 Ubuntu 和 Debian 等 Linux 发行版的现代系统和服务管理器。
如果您是 Linux初学者 ,并且想要使用 systemctel管理这些服务,请按照以下步骤操作。
使用 systemctl 列出所有服务
要列出 Linux 系统上的所有服务,请在终端中运行以下命令:
sudo systemctl list-units –类型服务
这将显示一个包含五列的表格:UNIT、LOAD、ACTIVE、SUB和描述。
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 FILE和STATE。 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发行版 。使用便携式发行版可以让您轻松地在它们之间切换。
.