CentOS7 删除多余的开机启动项

本文介绍如何在系统中移除更新前的旧内核版本,包括查看当前内核版本、列出所有内核RPM包、使用YUM命令移除指定内核及重启验证效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 开机的时候会发现有多个启动项,这是因为系统内核更新后没有把更新前的内核给删除掉,所以留了下来。下图中,

选项1:为更新后的新内核3.10.0-957.1.3.el7,

选项2:为更新前的内核3.10.0-957.el7,

选项3:为急救时用的。

  • 我们的目的是要将第二个选项给删除,做法如下:

执行命令:uname -a 查看系统当前内核版本

执行命令:rpm -qa | grep kernel 查看系统中全部的内核RPM包

 

执行命令:yum remove kernel-3.10.0-957.el7 删除旧内核的RPM包

最后执行命令:reboot重启

 重启后发现刚才的选项2没有了。

<think>嗯,用户想了解为什么在CentOS 7中设置了firewalld开机不自启,但系统启动时它仍然运行。这个问题确实有点奇怪,用户可能已经尝试过用systemctl disable命令但没效果,现在很困惑。 从引用内容来看,有几个关键点值得注意:引用[2]提到firewalld的systemd服务文件位置在/usr/lib/systemd/system/firewalld.service;引用[4]讨论了服务开机启动的原理;引用[1]和[3]则说明了重启防火墙的不同方式及其影响。 用户可能遇到的情况是:明明执行了systemctl disable firewalld,但重启后服务还是跑起来了。这通常有四个可能原因:一是服务被其他单元依赖强制启动,二是服务文件被修改过,三是存在残留的启动脚本,四是防火墙状态被持久化配置了。 需要给用户提供完整的排查步骤:先用systemctl list-dependencies查依赖链,再检查服务文件是否被篡改,然后排查/etc/rc.d/目录有无遗留脚本,最后确认/etc/sysconfig/firewalld里的启动参数。解决方案要分情况处理,比如用mask命令阻断依赖启动,或者手动清理残留配置。 用户应该需要具体的命令示例,比如如何用systemctl mask强制禁用,或者如何编辑配置文件。考虑到用户可能是运维人员,可以补充说明mask命令和disable命令的本质区别——前者是创建符号链接来阻止启动,后者只是移除启动关联。 另外要注意提醒用户操作风险,比如mask命令可能导致依赖firewalld的服务异常。最后可以延伸讨论下systemd的依赖管理机制,这样用户以后遇到类似问题能举一反三。</think>在CentOS 7中配置`firewalld`禁止开机自启后服务仍然自动启动,通常是由以下原因及对应的解决方法: --- ### **原因分析与解决方法** #### **1. 服务被其他单元依赖强制启动** * **原因**:`firewalld`可能被其他系统服务或单元(如`network.target`、`multi-user.target`)隐式依赖,导致开机时被拉起。 * **验证**: ```bash systemctl list-dependencies --reverse firewalld.service ``` 查看是否有其他服务依赖`firewalld`。 * **解决**: * **方法1**:使用`mask`强制禁用(推荐): ```bash sudo systemctl mask firewalld ``` 此命令创建符号链接`/etc/systemd/system/firewalld.service → /dev/null`,彻底阻止服务启动。 * **方法2**:移除依赖关系(需谨慎): 编辑依赖`firewalld`的服务单元文件,删除`Requires=firewalld.service`或`Wants=firewalld.service`等配置。 #### **2. 服务单元文件被修改** * **原因**:若`/usr/lib/systemd/system/firewalld.service`被修改(如添加`Restart=always`),可能导致服务异常启动。 * **验证**: ```bash systemctl cat firewalld ``` 检查输出中是否有非标准配置。 * **解决**: 恢复默认配置或手动修正: ```bash sudo cp /usr/lib/systemd/system/firewalld.service /etc/systemd/system/ # 复制到覆盖目录 sudo nano /etc/systemd/system/firewalld.service # 删除异常配置 sudo systemctl daemon-reload ``` #### **3. 残留SysVinit脚本(老旧系统)** * **原因**:若系统曾从SysVinit迁移,可能存在`/etc/rc.d/rc*.d/`中的启动脚本。 * **验证**: ```bash ls -l /etc/rc.d/rc*.d/*firewalld* ``` * **解决**: 删除所有以`S`开头的符号链接: ```bash sudo find /etc/rc.d/ -name "*firewalld*" -exec rm -f {} \; ``` #### **4. Firewalld自身配置持久化** * **原因**:`firewalld`的`/etc/sysconfig/firewalld`文件可能包含启动参数(如`FIREWALLD_ARGS="--nofork"`)。 * **验证**: ```bash cat /etc/sysconfig/firewalld ``` * **解决**: 清空或注释相关配置: ```bash sudo sed -i 's/^FIREWALLD_ARGS=.*/#&/' /etc/sysconfig/firewalld ``` --- ### **完整操作流程(推荐方案)** ```bash # 1. 强制禁用firewalld(阻断依赖启动) sudo systemctl mask firewalld # 2. 停止当前运行的服务 sudo systemctl stop firewalld # 3. 清理残留配置 sudo rm -f /etc/systemd/system/*/firewalld.service # 删除自定义单元文件 sudo find /etc/rc.d/ -name "*firewalld*" -delete # 删除SysVinit脚本 # 4. 重启系统验证 sudo reboot ``` --- ### **关键命令说明** | **命令** | **作用** | |-----------------------------------|--------------------------------------------------------------------------| | `systemctl mask firewalld` | 创建空链接阻止服务启动,优先级最高 [^4] | | `systemctl list-dependencies --reverse` | 反向追踪依赖关系,定位强制拉起firewalld的服务 | | `systemctl cat firewalld` | 查看合并后的单元文件配置(含覆盖层)[^2] | | `firewall-cmd --state` | 验证防火墙状态(重启后应为`not running`) | > **注意**:若使用`mask`后仍需临时启用,需先执行`systemctl unmask firewalld`再启动服务。 --- ### **延伸问题** 1. **`systemctl mask` 和 `disable` 的本质区别是什么?** `disable`仅移除开机启动链接,而`mask`通过链接到`/dev/null`使服务**完全不可启动**(即使被依赖)[^4]。 2. **如何排查被其他服务依赖强制启动的情况?** 使用 `systemd-analyze blame` 结合 `journalctl -u firewalld` 分析启动日志,定位触发源。 3. **Firewalld禁用后如何保证网络安全性?** 可改用`iptables`服务,或依赖云平台安全组。需手动配置规则并启用服务: ```bash sudo yum install iptables-services sudo systemctl enable iptables ``` [^1]: 服务重启会中断活动连接并重置规则。 [^2]: Firewalld的systemd单元文件路径及状态检查方法。 [^3]: `--complete-reload`会完全重置防火墙状态。 [^4]: `systemctl mask`是彻底禁用服务的标准方式,优先级高于依赖项。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值