chkconfig
功能:
检查、设定系统的各种服务。
说明:
这个是redhat公司遵循GPL规则所开发的程序,它可以查询操作系统在每一个执行等级(runlevel)中会执行哪些系统服务,其中包括各种常驻服务。
语法:
chkconfig [--add][--del][--list][系统服务]或chkconfig[--level<等级代号>][系统服务][on/off/reset]
参数:
--add 新增所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件中增加相关的数据
--del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据
--level 指定该系统服务要在哪个执行等级中开启或关闭
--list 列出当前可从chkconfig指令管理的所有系统服务和等级代号
on/off/reset 在指定的执行登记,开启/关闭/重置该系统服务
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。
chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
chkconfig提供一个简单的命令行工具,它可以用来维护/etc/rc[0-6].d目录里面一些符号链接。
常用参数命令的格式及说明:
格式:chkconfig 或
格式:chkconfig --list
列出所有服务的当前启动信息。也就是显示所有运行级系统服务的运行状态信息(on或off)
例1.查看在各种不同的执行等级中,各项服务的状况:
#chkconfig --list
格式:chkconfig --list <service>
列出指定系统服务<service>的当前启动信息。
例2.列出系统服务vsftpd在各个执行等级的启动情况:
#chkconfig --list vsftpd
格式:chkconfig <service> on
将指定服务<service>系统开机时自动启动。
格式:chkconfig <service> off
将指定服务<service>系统开机时不自动启动。
格式:chkconfig --add name
增加一项新的服务。
格式:chkconfig --del name
删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
格式:chkconfig [--level levels] name <on|off|reset>:
设置某一服务在指定的运行级是被启动,停止还是重置。
例3.在执行等级3,5时,关闭vsftpd系统服务:
#chkconfig --level 35 vsftpd off
拓展知识:
运行级别:
那么什么是运行级别呢??
简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。
不同的运行级定义如下
0 - 关机(千万不能把initdefault 设置为0 )
1 - 单用户模式 # s init s = init 1
2 - 多用户,没有 NFS的多用户模式
3 - 完全多用户模式(标准的运行级) ,不启用图形界面
4 - 保留级别
5 - 多用户图形模式
6 - 重新启动(千万不能把initdefault 设置为6)
这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令链接到 /etc/rc.d/rc#.d 目录。(这里的# 就是运行级0-6) 。
在脚本中定义服务:
# chkconfig: 2345 20 80
意思是:该脚本将在运行级别2,3,4,5启动,启动优先级为20,停止优先级为80
扩展知识:
关于优先级:
如果启动的脚本或文件(前者)依赖于某个文件(后者);则前者的启动优先级要小于后者的启动优先级别,停止优先级别应大于后者的优先级别。
例4.启动优先级:A依赖于B(A(65) --> B(60))数字越小优先级别越大
停止优先级:A(60) --> B(70)
应用实例:
例5.写一个简单的服务脚本,名称tserver,使其能够接受chkconfig控制,且在2、3、4和5级别下默认开启;要求:
1) 当传递start参数时,显示“Startingtserver...”;注意,tserver为脚本名,也是服务名,如果脚本名称改变,此处的显示信息也要随之改变;比如,如果脚本名称改为myserver,则显示“Starting myserver”;
2) 当传递stop参数时,显示“Stoppingtserver...”
3) 当传递restart参数时,先显示“Stoppingtserver...”,而后显示“Starting tserver...”;
4) 当传递status参数时,根据此前的操作判定此处应该显示的信息;如果此前已经启动,则显示为“Running...”,否则显示为“Stopped...”;
5) 其它任意参数,则显示帮助信息;
注:
1) 建议上述的start、stop和帮助功能以函数实现;
2) 写好后,将此脚本复制进/etc/init.d目录中,并添加为系统服务;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#!/bin/sh # chkconfig: 2345 99 60 # description: Test Service Name=` basename $0`
File= /var/lock/subsys/ $Name
if [ $ # -lt 1 ]; then
echo "help: $Name {start|restart|stop|status}"
exit 5
fi Start(){ if [ -e $File ]
then echo "$Name is running"
else touch $File
echo "Starting $Name"
fi } Stop() { if [ -e $File ]
then rm -f $File
echo "Stopping $Name"
fi } Status(){ if [ -e $File ] ; then
echo "$Name running."
else echo "$Name stopped."
fi } Restart() { Stop Start } help(){ echo "Help: $Name Parameter {start|restart|stop|status}"
exit 6
}
case $1 in
start) Start
;;
stop) Stop
;;
restart) Restart
;;
status) Status
;;
*) help
;;
esac |
运行结果:
1
2
|
cp tserver.sh /etc/init.d/tserver.sh chkconfig –add tserver.sh |
本文转自 z永 51CTO博客,原文链接:http://blog.51cto.com/pangge/1269806