Red Hat 设计 chkconfig 的目的就是用来管理系统初始化的时候启动的服务。还能通过管理 init 脚本的符号连接得以最终控制启动关闭时的系统任务。
1)列出系统在各个运行级别下启动时的服务
# chkconfig -list
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpi-support 0:off 1:off 2:on 3:on 4:on 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
alsa-utils 0:off 1:off 2:off 3:off 4:off 5:off 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apparmor 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
apport 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:on 3:on 4:on 5:on 6:off
binfmt-support 0:off 1:off 2:on 3:on 4:on 5:on 6:off
bluetooth 0:off 1:off 2:on 3:on 4:on 5:on 6:off
bootlogd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
bootlogs.sh 0:off 1:on 2:on 3:on 4:on 5:on 6:off
bootmisc.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
brltty 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkroot.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
console-setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
......
在输出的每一行,最开始的段代表在 /etc/init.d 中的 init 脚本名。 其余的区段表示脚本进入各个运行级时的各运行级 0-6 的状态。 例如,cron 应当在进入运行级 2、3、4、5 的时候启动,当进入 0、1、 6的时候停止。
我们可以用这个命令来验证一下上面的输出结果是否正确。
# find /etc/rc*.d -name '*cron*' -print
/etc/rc1.d/K11cron
/etc/rc1.d/K11anacron
/etc/rc2.d/S89cron
/etc/rc2.d/S89anacron
/etc/rc3.d/S89cron
/etc/rc3.d/S89anacron
/etc/rc4.d/S89cron
/etc/rc4.d/S89anacron
/etc/rc5.d/S89cron
/etc/rc5.d/S89anacron
还可以在--list后指出要显示的服务名称,如:
# chkconfig --list sshd
就是仅查看服务sshd在各个运行级别是否启动。
2)调整开机启动服务项
格式:chkconfig [--level <运行级>] <名字> <action>
例子:在运行级2中,禁止启动sshd服务
# chkconfig --level 2 sshd off
3)向chkconfig注册服务的启动文件。系统自带的服务都向chkconfig注册过,因此我们可以通过chkconfig --list这样的命令来查看到它们的是否启动。如果你自己创建了某个服务,就要通过下面介绍的命令来向chkconfig注册。
chkconfig {--add | --del} STARTUPFILE
例子:
# chkconfig --list bluetooth
bluetooth 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig --del bluetooth
# chkconfig --list bluetooth
报错信息(须补)
# chkconfig --add bluetooth
# chkconfig --list bluetooth
bluetooth 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4)chkconfig可以用来管理临时服务程序,也就是由xinetd来负责启动的服务。
chkconfig XINETD FILE [on | off]
上面这条命令其实是做了如下两件事情:
* 修改位于/etc/xinetd.d/目录下的启动文件配置文件,将其中的disable参数改为yes或者no;
* 重新传送SIGHUP信号给xinetd进程,让它重载配置文件。