如何使用systemctl命令屏蔽服务

2024年 3月 20日 40.5k 0

systemctl是用于管理系统服务的命令行实用程序。它有多种选项来管理Linux上的服务,例如启动服务、停止服务、启用服务和禁用服务。还有一个选项称为掩码。

屏蔽systemd服务意味着该服务被禁用,即使是通过系统或手动命令也无法启用。蒙面是一种更严重的致残形式。

在本指南中,我将带您了解如何使用system ctl屏蔽Linux上的服务,以及如何取消屏蔽它。此外,我还将介绍屏蔽服务和禁用服务之间的主要区别。

警告:在Linux上,服务是相互依赖的。由于屏蔽服务会禁用它并禁止任何激活,因此要谨慎使用它。

在进一步讨论之前,让我们首先了解掩蔽服务背后的机制。

什么是屏蔽服务

屏蔽服务是一种永久禁用的服务,用于防止系统或系统管理员启用该服务。系统管理员通常使用掩码选项停用出现故障或冲突的服务。但是,建议谨慎使用此选项,因为屏蔽关键的系统服务可能会在引导系统时带来障碍。

如何列出掩码服务

要列出Linux上的屏蔽服务,请使用list—units选项,其中提到的状态是屏蔽的。

系统控制列表-单位--状态=已屏蔽

如何伪装一个服务

systemctl命令可用于使用mask选项屏蔽任何服务。命令的一般语法如下所述。

sudo systemctl mask [Service—Name]

上述语法中的MASK选项实质上是建立一个指向/etc/systemd/system中的服务的符号链接。

还可以提到一个或多个服务,用空格隔开。

让我们使用上面的语法来屏蔽SSH服务。

sudo systemctl掩码ssh. service

要检查屏蔽服务的状态,请使用—state =选项和systemctl list—units。

如果您尝试启动服务,您将收到一个输出,说明该单元已被屏蔽。

注意:您不能屏蔽在/etc/systemd/system目录中创建的服务。由于此目录中的服务对于系统操作是必不可少的,因此屏蔽它们可能会损害正常的系统功能。然而,禁用这些服务等同于屏蔽它们。

如何临时屏蔽服务

使用—runtime选项可以在下次引导之前屏蔽服务。

SUDO系统ctl掩码[服务名称]--运行时

它在/run/systemd/system目录中创建服务的符号链接。如果服务的符号链接已经存在于目录中,则服务被设计为临时屏蔽。

如何打开一个服务

使用带有unMASK选项的system ctl命令可以删除掩码限制。此命令不接受服务的路径,因此只需要提及服务名称。

sudo systemctl unmask [Service—Name]

在取消屏蔽服务后,您可能需要重新启动系统。

屏蔽服务和禁用服务之间的区别

禁用的服务可以通过系统和手动命令启用和启动。但是,无论是通过系统还是通过人工交互,都无法启用屏蔽服务。

当服务被禁用时,在/etc/systemd/system目录中创建的符号链接将被删除,并且该服务在引导时不会激活。但它可以被依赖的服务激活。

另一方面,屏蔽服务链接到/dev/null,这使得它永久不可用。

注意,/dev目录包含块设备的文件。/dev/null是一个虚拟设备,用于删除写入它的任何内容。它通常用于丢弃来自stdout和stderr的输出。

结论

如果要永久禁用任何服务,请使用systemctl mask命令。即使系统也无法启用屏蔽服务。在本指南中,我介绍了如何永久和临时屏蔽服务。此外,我们还提到了一种解除服务屏蔽的方法,以及屏蔽服务和禁用服务之间的主要区别。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论