禁用系统服务开机自启的核心是解除 systemd 在启动目标中的自动激活关联,应使用 sudo systemctl disable 服务名 移除对应软链接,不影响当前运行状态;可加 --now 参数一步停止并禁用;旧 SysVinit 系统才需 chkconfig off 或 update-rc.d remove。

禁用系统服务的开机自启,核心是解除 systemd 对该服务在启动目标(如 multi-user.target)中的自动激活关联,而不是停止当前运行的服务。
使用 systemctl disable 禁用开机自启
这是最标准、推荐的方式,适用于所有基于 systemd 的现代发行版(Ubuntu 16.04+、CentOS 7+、Debian 8+ 等):
- 执行命令:
sudo systemctl disable 服务名(例如sudo systemctl disable nginx) - 该命令会移除
/etc/systemd/system/xxx.target.wants/下对应的软链接,不再触发开机拉起 - 当前正在运行的服务不受影响,仍保持 active 状态
- 验证是否禁用成功:运行
systemctl is-enabled 服务名,返回disabled即表示已生效
同时停止并禁用(一步到位)
如果希望服务立即停止,且不再开机启动,可加 --now 参数:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
sudo systemctl disable --now 服务名- 等效于先执行
sudo systemctl stop 服务名,再执行sudo systemctl disable 服务名 - 适合清理临时启用的服务,或下线不再需要的服务
检查和确认状态
禁用后建议快速验证,避免误操作:
- 查看开机自启状态:
systemctl is-enabled 服务名 - 查看所有服务的启用状态:
systemctl list-unit-files --type=service --state=enabled(只显示已启用的) - 查看服务当前运行状态:
systemctl status 服务名,注意区分enabled(开机自启)和active(当前运行)
旧系统兼容:SysVinit(仅限 CentOS 6 / Debian 7 等极少数场景)
若确认系统仍在使用 SysV init(可通过 ps -p 1 -o comm= 查看进程 1 是否为 init 而非 systemd),才需用传统方式:
- RHEL/CentOS 6:
sudo chkconfig 服务名 off - Debian/Ubuntu:
sudo update-rc.d 服务名 remove - 注意:即使存在
/etc/init.d/脚本,只要系统用 systemd,优先走 systemd 流程,chkconfig或update-rc.d可能不生效

















