chkconfig是centos 6及更早sysv系统中用于管理/etc/init.d服务脚本开机自启的工具,通过设置0–6运行级别符号链接实现配置,不直接控制服务进程,需脚本含# chkconfig注释且有执行权限。

Linux中通过chkconfig管理老旧SysV服务,核心是操作/etc/init.d/下的脚本,并控制其在不同运行级别(0–6)的启用状态。它不直接启动服务,只决定“开机时是否自动执行”。适用于CentOS 6、RHEL 6及更早版本,或部分仍保留SysV兼容层的系统。
确认服务是否支持chkconfig
不是所有脚本都能被chkconfig识别。需满足两个条件:
- 脚本必须放在
/etc/init.d/目录下,且有可执行权限(如chmod +x /etc/init.d/mysqld) - 脚本头部需包含标准的LSB注释段(至少含
# chkconfig:行),例如:# chkconfig: 2345 85 15(表示默认在2/3/4/5级启用,启动序号85,关闭序号15)
添加并启用开机自启
若服务尚未注册到chkconfig管理列表,需先添加再启用:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
chkconfig --add mysqld—— 将脚本纳入管理(仅执行一次) -
chkconfig mysqld on—— 默认为运行级别2345启用(等价于chkconfig --level 2345 mysqld on) - 验证结果:
chkconfig --list mysqld,输出中出现2:on 3:on 4:on 5:on即生效
查看和调整运行级别行为
运行级别决定服务何时被拉起(如3级为多用户命令行,5级为图形界面):
-
chkconfig --list—— 查看所有SysV服务的全局开关状态 -
chkconfig --list | grep mysqld—— 快速定位某服务 - 单独关闭某级启动:
chkconfig --level 5 mysqld off - 注意:该命令只影响SysV配置;若系统已启用systemd,实际启动可能由
systemctl接管,SysV设置可能被忽略
禁用或移除服务管理
不再需要开机自启时,推荐先关掉再清理:
-
chkconfig mysqld off—— 清除所有级别的启用标记 -
chkconfig --del mysqld—— 从chkconfig管理列表中彻底移除(删除/etc/rc*.d/下的符号链接) - 手动停止服务需另用:
service mysqld stop(chkconfig不控制运行时状态)










