知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

Suse服务启动顺序简析

发布时间:2014-09-05 16:09:27作者:知识屋

 
Suse 服务启动顺序的问题,终于把我给刺激了,不得不认真的看一下,以前使用Redhat时候,是用chkconfig进行启动脚本的顺序调整的。例如,
# chkconfig: 35 98 01
这表明,我想让这个服务在runlever 3 和5的时候启用,其他情况禁用。启用时的启动顺序是98,这个已经很靠后了,停止顺序是01,这个相当靠前哦。
然而,在SLES中,一切都变了,这种指定方式不再好用,(注意哦,不是不能用,是有限制)。SUSE引入了新的启动顺序配置方式,我管它叫做before/after方式,使用的相关命令是insserv。配置方式是在脚本中加入一些注释,没错,就像这样:
  www.zhishiwu.com  
### BEGIN INIT INFO
# Provides:           Tomcat
# Required-Start:      $network oracle-xe 
# Required-Stop:      $network 
# Default-Start:       2 3 5
# Default-Stop:       0 1 2 6
# Description:        Start Tomcat server
### END INIT INFO
解释在这里,
Provides: 指明这个 init 脚本控制的程序或者服务的名字。
Required-Start:指明需要在自身服务启动之前先启动的服务名称。
Required-Stop: 指明需要在自身服务停止之前先停止的服务名。
Default-Start:指明服务自动启动的 runlevel 级别。
Default-Stop:指明服务自动停止的 runlevel 级别。
Description:服务的说明。
 
然后要做的是,运行命令 insserv。insserv 命令会检查这部分脚本内容,对应 Default-Start 和 Default-Stop 定义,在相应的 runlevel(/etc/init.d/rc?.d/) 目录下创建到 /etc/init.d/ 目录下脚本的启动,停止链接。insserv 还会把服务之间的启动和停止依赖性一起写入文件 .depend.start file 和 .depend.stop。
天啊,看上去,SUSE的处理方式还是满不赖的么,不用纠结于给脚本设定多大的启动顺序数字。而且,还能自动写入依赖关系,自动创建相应的启动脚本,(其实只是给定了启动顺序数字,和创建了一个到启动脚本的链接)。  www.zhishiwu.com  
据说SUSE对启动脚本的这种处理方式,符合一种叫做LSB的标准。有兴趣的朋友可以点这里http://www.ibm.com/developerworks/cn/linux/l-lsb-intr/index.html或者这里http://www.linuxbase.org/围观。
 
那么,在SUSE中使用chkconfig配置启动脚本有何限制呢,
 
它只能单纯的解决在 /etc/init.d/ 下的脚本的自动启动的问题,而不能定义各个脚本之间启动停止的依赖性。当然也不会创建依赖关系。
那么,在Redhat中能够使用SUSE中这么帅的配置方式么,
如果装了LSB相关包的话,似乎是可以的。
 
 
作者 jackyyen
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜