chkconfig在启动时不启动应用程序脚本

操作系统:Centos 5.7

我的应用程序脚本是这样启动的(/etc/init.d/myapp):

#!/bin/sh # chkconfig 2345 85 60 # description: my application controller # processname: myapp NAME=MyApp DIR=/opt/myapp/ RUN_AS=root ### BEGIN INIT INFO # Provides: myapp # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: Starts the myapp application ### END INIT INFO 

Chkconfig状态

 chkconfig --list | grep myapp myapp 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

myapp接受start | 停止| 重启| 强制重新加载,他们都testing工作

myapp控制器基本上需要为应用程序启动一些守护程序服务。 如果我运行service myapp start系统重新service myapp start后,一切正常。 但由于某些原因,chkconfig不能自动启动它。 任何人都可以解释我可能做错了什么?

更新:

感谢cjc的信息,似乎我的应用程序控制器正在加载一些所需的服务,如mysql之前。

这是一个快速search的结果:

 find /etc -name rc* -type d | xargs ls | grep myapp K50myapp K50myapp S50myapp S50myapp S50myapp S50myapp K50myapp 

那么为什么在我设置为85(开始)60(停止)的脚本中将顺序设置为50? 我该如何改变这一点?

解决scheme (正如cjc在他的回答中所指出的那样)

语法不正确:

 # chkconfig 2345 85 60 

正确(chkconfig后需要冒号):

 # chkconfig: 2345 85 60 

chkconfig本质上是从/etc/rc3.d/S85myapp到/etc/init.d/myapp的符号链接。 validation这些链接是否存在。 我假设他们这样做,因为“chkconfig –list”显示他们是“开”。

既然你可以从提示符执行/etc/init.d/myapp,但是在启动过程中不会发生这种情况,我猜测PATH有问题,或者执行myapp之前需要运行的服务实际上是myapp后初始化。 记住/etc/rc3.d中的脚本(或者你的初始运行级别)是按sorting顺序执行的。 validationmyapp是否具有运行所需的所有内容。

(虽然我猜这有一个PATH问题)