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