Linux chkconfig命令介绍
Linux chkconfig命令是一个用于检查和设置系统的各种服务的工具。它可以查询和修改操作系统在每一个运行级别中会执行哪些系统服务,包括各种常驻服务。它是Red Hat公司遵循GPL规则所开发的程序,适用于使用System V或Upstart初始化系统的Linux发行版。它可以方便地管理服务的启动和停止,以及在开机时是否自动启动服务。
Linux chkconfig命令适用的Linux版本
Linux chkconfig命令主要适用于使用System V或Upstart初始化系统的Linux发行版,如Red Hat Enterprise Linux 6,CentOS 6,Fedora 14,Ubuntu 14.04等。对于使用systemd初始化系统的Linux发行版,如Red Hat Enterprise Linux 7,CentOS 7,Fedora 15,Ubuntu 16.04等,建议使用systemctl命令来管理服务。如果需要在使用systemd的系统上使用chkconfig命令,可以通过以下方式安装:
- 在Red Hat Enterprise Linux 7或CentOS 7上,使用yum命令安装chkconfig包:
[linux@bashcommandnotfound.cn ~]$ sudo yum install chkconfig
- 在Fedora 15或更高版本上,使用dnf命令安装chkconfig包:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install chkconfig
- 在Ubuntu 16.04或更高版本上,使用apt命令安装sysv-rc-conf包:
[linux@bashcommandnotfound.cn ~]$ sudo apt install sysv-rc-conf
Linux chkconfig命令的基本语法
Linux chkconfig命令的基本语法如下:
chkconfig [选项] [服务] [子命令]
Linux chkconfig命令的常用选项说明
Linux chkconfig命令的常用选项说明如下:
选项 | 说明 |
---|---|
--add | 增加指定的服务,让chkconfig命令管理它,并在系统启动的配置文件中增加相关数据 |
--del | 删除指定的服务,不再由chkconfig命令管理,并在系统启动的配置文件中删除相关数据 |
--list | 显示所有服务及其在各个运行级别中的启动状态 |
--level | 指定要操作的运行级别,可以是0-6之间的一个或多个数字,如--level 35 |
on | 启用指定的服务,在指定的运行级别中自动启动 |
off | 禁用指定的服务,在指定的运行级别中不自动启动 |
reset | 重置所有服务的启用或禁用状态,根据服务脚本中的注释信息进行设置 |
resetpriorities | 重置所有服务的启动或停止优先级,根据服务脚本中的注释信息进行设置 |
Linux chkconfig命令的实例
Linux chkconfig命令的实例如下:
- 列出所有服务及其在各个运行级别中的启动状态:
[linux@bashcommandnotfound.cn ~]$ chkconfig --list
- 列出指定的服务及其在各个运行级别中的启动状态,如sshd服务:
[linux@bashcommandnotfound.cn ~]$ chkconfig --list sshd
- 启用指定的服务,在所有运行级别中自动启动,如httpd服务:
[linux@bashcommandnotfound.cn ~]$ chkconfig httpd on
- 禁用指定的服务,在所有运行级别中不自动启动,如telnet服务:
[linux@bashcommandnotfound.cn ~]$ chkconfig telnet off
- 启用指定的服务,在指定的运行级别中自动启动,如在运行级别3和5中启动mysql服务:
[linux@bashcommandnotfound.cn ~]$ chkconfig --level 35 mysql on
- 禁用指定的服务,在指定的运行级别中不自动启动,如在运行级别0和6中禁用crond服务:
[linux@bashcommandnotfound.cn ~]$ chkconfig --level 06 crond off
- 增加指定的服务,让chkconfig命令管理它,并在系统启动的配置文件中增加相关数据,如myservice服务:
[linux@bashcommandnotfound.cn ~]$ chkconfig --add myservice
- 删除指定的服务,不再由chkconfig命令管理,并在系统启动的配置文件中删除相关数据,如myservice服务:
[linux@bashcommandnotfound.cn ~]$ chkconfig --del myservice
- 重置所有服务的启用或禁用状态,根据服务脚本中的注释信息进行设置:
[linux@bashcommandnotfound.cn ~]$ chkconfig --reset
- 重置所有服务的启动或停止优先级,根据服务脚本中的注释信息进行设置:
[linux@bashcommandnotfound.cn ~]$ chkconfig --resetpriorities
Linux chkconfig命令的注意事项
- Linux chkconfig命令只能管理符合LSB规范的服务脚本,即在/etc/init.d目录下有对应的脚本,并且在脚本的开头有类似如下的注释信息:
# chkconfig: 345 20 80
# description: Some description of the service
其中,345表示该服务在运行级别3,4,5中自动启动,20表示该服务的启动优先级,80表示该服务的停止优先级。如果没有这些信息,chkconfig命令无法识别和管理该服务。
- Linux chkconfig命令只能修改服务在各个运行级别中的启动状态,不能直接启动或停止服务。要启动或停止服务,需要使用service命令或者直接执行服务脚本,如:
[linux@bashcommandnotfound.cn ~]$ service httpd start
[linux@bashcommandnotfound.cn ~]$ /etc/init.d/httpd stop
- 如果在使用systemd的系统上使用chkconfig命令,可能会出现如下的错误信息:
bash: chkconfig: command not found
这表示系统没有安装chkconfig命令,可以根据不同的Linux发行版,使用yum,dnf或apt命令安装chkconfig或sysv-rc-conf包,如前文所述。
评论区