> CentOS > CentOS教程 >

CentOS使用脚本管理服务

1、使用工具:chkconfig 管理/etc/rc.d/init.d或/etc/init.d/目录下的服务启动脚本。
     要在服务启动脚本开头添加两行:
                           # chkconfig: 2345  88 12
                           # description: XXXXXXXXX XXXXXX
   这样就可以使用工具:chkconfig 来管理服务启动脚本了。
   使用工具:chkconfig 工具的好处:
         没有使用该工具,我们要让一个服务在2、3、4、5级别上都运行,在其它级别上都不运行。
  要手动设置很多符号连接:
                      在/etc/rc.d/rc1.d   执行:[root@node2 rc1.d]# ln -sv K12nrped ../init.d/nrped
                      在/etc/rc.d/rc2.d   执行:[root@node2 rc2.d]# ln -sv S88nrped ../init.d/nrped
                      在/etc/rc.d/rc3.d   执行:[root@node2 rc3.d]# ln -sv S88nrped ../init.d/nrped
                     在/etc/rc.d/rc4.d   执行:[root@node2 rc4.d]# ln -sv S88nrped ../init.d/nrped
                     在/etc/rc.d/rc5.d   执行:[root@node2 rc5.d]# ln -sv S88nrped ../init.d/nrped
                     在/etc/rc.d/rc6.d   执行:[root@node2 rc6.d]# ln -sv K12nrped ../init.d/nrped
       添加这些符号链接之后。运行级别改变时,该服务就会授脚本 rc 的控制。------> rc 脚本就会根据对应运行级别目录(/etc/rc.d/rc$runlevel.d)的符号标识:S、K 关闭、启动对应的服务。这样就实现了设置一个服务是否在一个运行级别上运行。
         工具:chkconfig 就会根据服务运行脚本的 #chkconfig 行来,自动设置上述的符号链接。
  

 
 [root@node2 rc3.d]# chkconfig on

     就会根据:# chkconfig: 2345  88 12 创建各运行级别上的符号链接。

2、为了使用工具: service 管理服务 脚本最少需要接收 start 和 stop 选项;
   服务启动脚本要根据用户输入的选项:
                                  stop  -----> 关闭服务
                                  start -----> 启动服务
                              reload -----> 告诉程序重读配置文件,改变程序的运行状态
                               restart ----> 重新启动服务

3、Lock directory for RedHat / SuSE
      RedHat 管理服务的一种机制,要在/var/lock/subsys/目录下创建一个锁文件。

 
[root@node2 rc.d]# vim /etc/init.d/nrped
#!/bin/bash
# chkconfig: 2345 89 11
# description: NRPE DAENON
NRPE=/usr/local/nagios/bin/nrpe
OPTIONS="-c /etc/nagios/nrpe.cfg -d"
lockfile=/var/lock/subsys/nrped
prog=nrped
RETVAL=0
. /etc/rc.d/init.d/functions
start() {
        echo -n $"Starting $prog: "
        daemon   $NRPE $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}
stop() {
        echo -n $"Stopping $prog: "
        killproc  -d -10 $NRPE
        RETVAL=$?
        echo
        [ RETVAL = 0 ] && rm -f ${lockfile}
}
reload() {
         echo -n $"Reloading $prog: "
         killproc  $NRPE  -HUP
         echo
}
case "$1" in
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start
        ;;
    reload)
       reload
        ;;
    status)
       status  $NRPE
       ;;
     *)
       echo "Usage: $0 start|stop|restart|reload|status"
       ;;
esac
exit 0

(责任编辑:IT)