linux服务管理

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

运行结果:

linux服务管理


1
2
cp tserver.sh /etc/init.d/tserver.sh
chkconfig –add tserver.sh


linux服务管理




本文转自 z永 51CTO博客,原文链接:http://blog.51cto.com/pangge/1269806


上一篇:利用日志使管理Linux更轻松


下一篇:【沉淀】从网络中间件到搜索,从移动开发到分布式计算平台,阿里高级专家李睿博谈自己的折腾路