在Linux系统中,停止启动文件(即系统启动时自动运行的服务或脚本)是常见的运维需求,以下详细介绍四种主流方法,适用于不同初始化系统(init),操作前请务必确认目标服务的必要性,避免禁用关键服务(如网络管理、系统日志)导致系统异常。
适用系统:Ubuntu 16.04+、CentOS 7+、Fedora 等
Systemd 是现代 Linux 的主流初始化系统,通过 systemctl
管理服务。
操作步骤:
-
查看服务状态(确认服务名称):
systemctl list-unit-files --type=service | grep enabled
示例输出:
nginx.service enabled
(服务名为nginx
) -
停止并禁用服务:
sudo systemctl stop nginx # 立即停止服务 sudo systemctl disable nginx # 禁止开机自启
-
验证结果:
systemctl is-enabled nginx # 显示 "disabled" 表示成功
使用 update-rc.d(SysVinit 系统)
适用系统:Debian 7、Ubuntu 14.04 等旧版本。
操作步骤:
-
禁用服务(以
apache2
为例):sudo update-rc.d -f apache2 remove # 彻底移除启动链接
-
手动停止服务:
sudo service apache2 stop # 或 /etc/init.d/apache2 stop
使用 chkconfig(Red Hat 系旧系统)
适用系统:CentOS 6、RHEL 6 等。
操作步骤:
-
查看服务列表:
chkconfig --list # 确认服务名(如 httpd)
-
禁用服务:
sudo chkconfig httpd off # 关闭自启 sudo service httpd stop # 立即停止
直接管理启动脚本目录
所有系统均可通过手动删除启动链接实现:
-
定位启动目录:
- Systemd:
/etc/systemd/system/multi-user.target.wants/
- SysVinit:
/etc/rcX.d/
(X 为运行级别,常用 2、3、5)
- Systemd:
-
删除启动链接(以 Systemd 为例):
sudo rm /etc/systemd/system/multi-user.target.wants/nginx.service
关键注意事项
-
谨慎操作:
- 禁用
dbus
、systemd-logind
、network
等核心服务可能导致系统崩溃。 - 建议先使用
systemctl status 服务名
查看服务作用。
- 禁用
-
临时禁用 vs 永久禁用:
systemctl stop
仅本次生效,重启后恢复。systemctl disable
永久禁用,需配合stop
立即停止。
-
恢复服务:
sudo systemctl enable nginx # 重新启用 sudo systemctl start nginx
初始化系统 | 禁用命令 | 适用场景 |
---|---|---|
Systemd | systemctl disable <服务名> |
现代主流系统(推荐) |
SysVinit | update-rc.d -f <服务名> remove |
Debian/Ubuntu 旧版 |
chkconfig | chkconfig <服务名> off |
CentOS/RHEL 6 |
重要提示:生产环境操作前建议备份系统或测试验证,可通过
systemd-analyze blame
查看启动耗时,针对性优化非关键服务。
引用说明: 参考 Linux 官方文档(systemd.unit(5))、Ubuntu Manpage(update-rc.d(8))及 Red Hat 运维指南(chkconfig(8)),操作命令已在 Ubuntu 22.04 及 CentOS 7 实测验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6379.html