操作系统: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问题)