运行级别脚本2


上一篇《运行级别脚本》主要是从概念上认知运行级别脚本。本篇主要记录一些实用性的知识。

一、运行级别脚本的结构

[root@localhost rc0.d]# cat /etc/init.d/!/bin/--   =  ] && exit  [ -n -n $
            /usr/sbin/ntpdate $dropstr -s -b $NTPDATE_OPTIONS $tickers &>/dev/=$?-eq  ] && success || [ $RETVAL -eq  =  ] &&=-g can replace the grep =-n $=$?-eq  ] && touch ///subsys/-n $=$?-eq  ] && rm -f ///subsys/  =$?|=$? [ -f ///subsys/=$?*=

这是一个非常长的脚本,上面仅截取了该脚本的一部分,此部分正好说明了运行级别脚本的编写方式。

(1)首先需要以注释的方式声明服务默认启动的运行级别列表,系统启动、关闭时服务启动、关闭的优先级。

(2)通常将服务的启动、关闭操作都写在函数中,然后以函数的方式调用。

(3)使用case语句处理strart、stop等参数。

(4)在case语句最后处理不合适的参数。

(5)如果需要检查服务是否处于运行状态,最好创建运行标记文件。

注意:设置运行级别脚本启动、关闭的优先级时,一定要注意其依赖的其他服务的优先级,以免启动服务失败。

二、编写运行级别脚本

编写运行级别脚本的目的可能是为自己编写的监控脚本添加新的启动方式,也可能是为某个产品编写启动服务等。此处引入一个示例脚本(并无实质性内容,在实际编写时需要在函数中添加实际的启动、关闭服务的语句):

!/bin/,启动和关闭的优先级分别为80、  .
         
         
          $ |*

注意:“# chkconfig”和“# description”开头的这两行,这是运行级别脚本中必须定义的内容,主要用于添加服务时初始化配置和描述信息。

三、添加和管理运行级别脚本

编写运行级别脚本的目的是能够将脚本作为服务添加到系统中。

1、添加运行级别脚本为系统服务

将运行级别脚本添加为系统服务之前,应该将编写完成的运行级别脚本复制到目录/etc/init.d中,并添加相应的执行权限。完成之后,就可以使用chkconfig命令将运行级别脚本添加为系统服务了。

将示例脚本test添加为系统服务使用如下命令:

[root@localhost shell]# chkconfig --add test

添加成功后,命令不会有任何返回信息。可以使用以下命令查看添加到服务:

[root@localhost shell]# chkconfig --:off   :off   :off   :on    :on    :on    --list |:off   :off   :off   :on    :on    :on    :off

另外,使用chkconfig –add test命令添加test为系统服务成功后,我们可以发现各个运行级别目录里已经自动添加了test的相关启动、关闭的脚本,并且这些脚本都是/etc/init.d/test的链接文件:

[root@localhost shell]# ls -al /etc/rc.d/rc0.d | root root    Dec  : K10test -> ../init.d/-al /etc/rc.d/rc1.d | root root    Dec  : K10test -> ../init.d/-al /etc/rc.d/rc2.d | root root    Dec  : K10test -> ../init.d/-al /etc/rc.d/rc3.d | root root    Dec  : S80test -> ../init.d/-al /etc/rc.d/rc4.d | root root    Dec  : S80test -> ../init.d/-al /etc/rc.d/rc5.d | root root    Dec  : S80test -> ../init.d/-al /etc/rc.d/rc6.d | root root    Dec  : K10test -> ../init.d/test

2、管理使用运行级别脚本添加到服务

使用chkconfig命令添加服务之后,就可以使用命令service启动服务:

/etc/init.d/test:

当然也可以随时删除:

[root@localhost shell]# chkconfig --del test

相关内容