chkconfig用错误的顺序创build服务符号链接

在RHEL6.3上,我有一个系统服务,应该在postgresql和httpd之后启动(分别命令为64和85),但是chkconfig总是把它放在50位。我在CentOS 6.0虚拟机上尝试了一个实验来确保我明白LSB节语法。

我用这个文本创build了/etc/init.d/foo ,拥有者root权限755,

 ### BEGIN INIT INFO # Provides: foo # Required-Start: postgresql httpd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: Foo init script ### END INIT INFO 

然后运行chkconfig --add foo 。 结果: /etc/rc5.d/S86foo按预期创build。 (其他的运行级别也如预期的那样)

我在RHEL机器上重复了同样的实验,而是创build了/etc/rc5.d/S50foo 。 我看不出两者之间会有不同的结果。 两台机器都有相同的命令和运行级别的postgresql和httpd。 有什么想法吗? 我只能使用# chkconfig: 2345 86 50 ,或者手动重命名服务符号链接到正确的顺序,但我想为后来的用户logging一个安装过程,我想知道如何正确地做,并理解为什么它是不按预期工作。

在RH系统上,您必须使用chkconfig行,如下所示:

https://fedoraproject.org/wiki/Packaging:SysVInitScript#.23_chkconfig:_line

关于chkconfig行:

SysV风格的initscript中的chkconfig:行用于确定默认启动服务的运行级别。 它也被用来设置“优先级”,或在运行级别内开始服务的顺序。 所有的Fedora SysV风格的启动脚本都必须有这一行。

关于LSB标题:

每个需要在任何运行级别默认启动的Fedora SysV样式的initscript都必须在LSB Header中包含这一行,并且它必须与Chkconfig头文件中为启动定义的运行级别列表匹配