首页 » Linux » CentOS » systemctl mask和systemctl disable区别

systemctl mask和systemctl disable区别

 
文章目录

很多人都知道systemctl disable <service-name>是用于禁用一个服务的开机自启动,但是systemctl mask <service-name>可能很多人没有使用过,那么他们的区别是什么,下面我来具体说明。

systemctl enable <service-name>

该命令用于将一个服务设置为开机自启动,它会在操作系统启动时将服务添加到默认的启动服务列表中。实际上它是将/usr/lib/systemd/system/中的文件软链接到了/etc/systemd/system/multi-user.target.wants/目录中。

例如:执行以下命令启用docker服务的开机自启动

systemctl disable <service-name>

该命令用于禁用一个服务的开机自启动,它会从操作系统启动服务列表中移除该服务,实际上它是将/etc/systemd/system/multi-user.target.wants/目录中的软链接文件删除。

例如:执行以下命令禁用docker服务的开机自启动

systemctl mask <service-name>

该命令用于完全禁用一个服务,并阻止其被启动,即使在此之前你设置了开机自启动同样也是失效的,它会创建一个链接到/dev/null,从而阻止该服务的启动,即使其他服务尝试启动该服务,也将无效。

例如:执行以下命令禁用docker服务启动

systemctl unmask <service-name>

该命令用于取消对一个服务的禁用操作,使其可以被启动,它会移除systemctl mask命令创建的链接文件。

例如:执行以下命令取消对docker服务的禁用

补充:

在执行了mask禁用服务后,强行start服务会报Failed to start <service-name>: Unit is masked.

在执行了mask禁用服务后,强行enable开机自启会报Failed to execute operation: Cannot send after transport endpoint shutdown

原文链接:systemctl mask和systemctl disable区别,转载请注明来源!

1