使用 systemctl mask 命令可彻底禁止服务启动,它通过将服务链接到 /dev/null 使其无法被加载或执行,比 disable 更彻底,disable 仅禁用开机自启但仍允许手动启动。
要在Linux中彻底禁止一个服务启动,甚至阻止它被手动启动,最可靠且推荐的方法是使用
systemctl mask
/dev/null
禁止服务启动,特别是那些你确定不需要,甚至可能造成安全隐患或资源浪费的服务,
systemctl mask
systemctl disable
mask
要使用它,命令很简单:
sudo systemctl mask <服务名称>
例如,如果你想彻底禁用一个名为
example.service
sudo systemctl mask example.service
执行后,你会发现即使你尝试
sudo systemctl start example.service
如果将来你需要重新启用这个服务,或者只是想解除它的“掩蔽”状态,可以使用
unmask
sudo systemctl unmask <服务名称>
sudo systemctl unmask example.service
这会移除指向
/dev/null
enable
start
systemctl mask
systemctl disable
说真的,这个问题经常困扰初学者,甚至一些老手有时也会混淆。我个人觉得,理解它们的根本差异,是管理Systemd服务的关键一步。
systemctl disable
/etc/systemd/system/multi-user.target.wants/
.wants
sudo systemctl start <服务名称>
而
systemctl mask
/dev/null
start
mask
mask
想要知道系统中有哪些服务被你“掩蔽”了,这其实挺重要的,尤其是在排查问题或者回顾配置的时候。毕竟,你可能不记得之前对哪些服务动过手脚。最直接的方法是查看服务的状态,如果一个服务被
mask
systemctl status
比如,如果你想检查
example.service
systemctl status example.service
输出中会有一行显示
Loaded: masked (/dev/null; bad)
mask
但如果你想列出所有被
mask
systemctl list-unit-files
grep
systemctl list-unit-files --state=masked
这个命令会列出所有处于
masked
.service
.socket
mask
mask
这绝对是每个Linux用户都可能遇到的“心跳骤停”时刻。我个人就经历过几次,手滑或者没搞清楚依赖关系,一不小心就把一些看似不重要,实则系统核心依赖的服务给
mask
systemctl mask
恢复的命令是
systemctl unmask <服务名称>
sudo systemctl unmask <误mask的服务名称>
执行这个命令后,Systemd会移除之前创建的指向
/dev/null
unmask
sudo systemctl start <服务名称>
如果这个服务原本就需要开机自启,你还需要重新
enable
sudo systemctl enable <服务名称>
关键在于,在执行
mask
systemctl status <服务名称>
disable
mask
disable
以上就是如何在Linux中禁止服务启动 Linux systemctl mask锁定的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号