chkconfig

管理系统服务与运行级


语法格式

chkconfig [--list] [--type type] [service]
chkconfig --add service
chkconfig --del service
chkconfig [--level levels] [--type type] service {on|off|reset|resetpriorities}
chkconfig [--level levels] [--type type] service

命令简介

chkconfig是一个命令行工具,用于维护/etc/rc.d/rc[0-6].d目录中的启动或终止脚本,以避免系统管理员直接增删其中的各种符号链接文件。

chkconfig具有5个不同的功能:增加新的服务、删除原有的服务、显示现有服务在各个运行级中的启停信息、修改服务在各个运行级中的启停状态,以及检测指定服务的启停状态。

运行chkconfig命令时,如果除了一个服务名参数之外未指定任何选项,将会检测指定服务的配置是否允许在当前运行级中启动。如果是,返回真,否则返回假。“--level”选项可用于查询服务在指定运行级而不仅仅是当前运行级的启动状态。

当使用“--list levels”选项,或未加任何选项与参数运行chkconfig命令时,将会显示所有服务及其当前的配置状态。

如果在服务名之后指定了on、off、reset或resetpriorities之一,chkconfig将会修改指定服务的启动信息。其中on与off分别表示改变运行级时启动或停止相应的服务,reset表示将按照服务启动脚本中的定义,重新设置相应服务在所有运行级上的on/off状态,resetpriorities表示按照服务启动脚本中的定义,重新设置相应服务启动与停止的优先级。

通常,on与off仅影响运行级2、3、4和5,而reset与resetpriorities能够影响所有的运行级。“--level”选项可用于指定究竟影响哪些运行级。

注意,针对每一个服务,每个运行级都有一个启动或停止脚本。在改变运行级时,init通常不会重新启动一个已经启动的服务,也不会重新停止一个当前并未运行的服务。

利用xinetd.d目录中的配置文件,chkconfig也能管理xinetd脚本。但对服务的支持仅限于启动(on)、停止(off)以及使用“--list”选项显示其on/off运行状态。

chkconfig还支持一个“--type”选项,用于限定特定服务类型的动作。仅当不同类型的服务具有相同的名字时,才需要用到这个选项,区分究竟指的是哪一个服务。有效的服务类型是sysv与xinetd。

命令选项

--level levels  指定服务配属的运行级。运行级由0~6的数字串组成,如“--level 35”表示运行级3和5。

--add service  增加指定的服务,由chkconfig统一管理。在增加服务时,chkconfig将会在/etc/rc.d/rc[0-6].d目录中增加相应的符号链接文件,确保在指定的运行级(参见启动脚本“INIT INFO”一节或“# chkconfig:”注释行中的定义)或每个运行级(若“INIT INFO”节中未定义)中,都有一个相应服务的启动或终止脚本。参见“与运行级有关的启动脚本”一节中的说明。

--del service  从chkconfig管理的服务中删除指定的服务,同时删除/etc/rc.d/rc[0-6].d目录中的相应符号链接文件。注意,若想暂时禁用一个服务,可以运行“chkconfig service off”命令。

--list [service]  显示chkconfig管理的所有服务及其在每个运行级的启停设置。如果指定了服务的名字,仅显示指定服务的相关信息。

与运行级有关的启动脚本

一个服务是否能够由chkconfig管理,取决于其启动脚本中是否存在下列形式的两个或多个特定的注释行:

# chkconfig: levels start stop
# description: description-to-startup-script
# processname: srvname
# config: path-to-config-file
# pidfile: path-to-pid-file

其中第一行(“# chkconfig:”)告诉chkconfig,当前服务通常应在哪些运行级中启动,以及启动与停止的优先级。如果在任何运行级中都不需要启动当前的服务,应在运行级组合的位置放置一个连字符“-”。第二行是一个服务的描述(“# description:”),如果描述较长,可以使用转义符号“\”延续多行。

例如,autofs文件包含下列注释行:

# chkconfig: 345 28 72
# description: Automounts filesystems on demand

上述信息说明autofs启动脚本应当在运行级3、4或5中运行,启动服务的优先级是28,停止运行的优先级是72。

chkconfig也支持LSB风格的启动脚本,其中包含下列形式的注释行。注意,这些注释行通常应置于“# chkconfig:”注释行之前。

### BEGIN INIT INFO
# Provides: foo
# Required-Start: bar
# Defalt-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Foo init script
### END INIT INFO

在这个例子中,foo的启动优先级应高于bar的启动优先级,如果bar已经启用,应根据其启动优先级,适当地调整foo的启动优先级。注意,在设置依赖性时需要特别小心,如果处置不当,有可能会引起一连串的启动脚本的启停优先级调整。

应用实例

1. 查询当前系统所有服务在每个运行级的启动状态。

# chkconfig

2. 启用MySQL数据库。以便MySQL数据库能够随着系统的启动而自动启动:

# chkconfig --level 35 mysqld on
#

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z