Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54872
  • 博文数量: 73
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 425
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-05 15:44
文章分类
文章存档

2015年(73)

我的朋友

分类: Web开发

2015-01-08 11:45:58

Suse 服务启动顺序的问题,终于把我给刺激了,不得不认真的看一下,以前使用Redhat时候,是用chkconfig进行启动脚本的顺序调整的。例如,

# chkconfig: 35 98 01

这表明,我想让这个服务在runlever 3 和5的时候启用,其他情况禁用。启用时的启动顺序是98,这个已经很靠后了,停止顺序是01,这个相当靠前哦。

然而,在SLES中,一切都变了,这种指定方式不再好用,(注意哦,不是不能用,是有限制)。SUSE引入了新的启动顺序配置方式,我管它叫做before/after方式,使用的相关命令是insserv。配置方式是在脚本中加入一些注释,没错,就像这样:

   

### BEGIN INIT INFO

# Provides:           Tomcat

# Required-Start:      $network -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的处理方式还是满不赖的么,不用纠结于给脚本设定多大的启动顺序数字。而且,还能自动写入依赖关系,自动创建相应的启动脚本,(其实只是给定了启动顺序数字,和创建了一个到启动脚本的链接)。    

据说SUSE对启动脚本的这种处理方式,符合一种叫做LSB的标准。有兴趣的朋友可以点这里http://www.ibm.com/developerworks/cn/linux/l-b-intr/index.html或者这里围观。

那么,在SUSE中使用chkconfig配置启动脚本有何限制呢,

它只能单纯的解决在 /etc/.d/ 下的脚本的自动启动的问题,而不能定义各个脚本之间启动停止的依赖性。当然也不会创建依赖关系。

那么,在Redhat中能够使用SUSE中这么帅的配置方式么,

如果装了LSB相关包的话,似乎是可以的。

作者 jackyyen

  • 本文来自:
阅读(330) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~