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

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 --list | grep myapp

myapp            0:off   1:off   2:on    3:on    4:on    5:on    6:off

myapp 接受启动 | 停止 | 重启 | 强制重新加载,并且它们都经过测试可以正常工作

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

更新:

感谢 cjc 的信息,看来我的应用程序控制器正在加载某些必需的服务(例如 mysql)。

以下是快速搜索的结果:

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

那么,为什么我在脚本中将顺序设置为 85(开始)60(停止)时,顺序却设置为 50?我该如何更改?

解决方案(正如 cjc 在他的回答的评论中指出的那样)

语法不正确:

# chkconfig 2345 85 60

更正为(chkconfig 后需要冒号):

# chkconfig: 2345 85 60

答案1

chkconfig 本质上是从 /etc/rc3.d/S85myapp 到 /etc/init.d/myapp 建立一个符号链接。验证这些链接是否存在。我认为它们确实存在,因为“chkconfig --list”显示它们处于“打开”状态。

由于您可以从提示符执行 /etc/init.d/myapp,但它不会在启动期间发生,我猜想是 PATH 存在问题,或者您在执行 myapp 之前需要启动并运行的服务实际上是在 myapp 之后初始化的。请记住,/etc/rc3.d(或您的初始运行级别)中的脚本是按排序顺序执行的。验证 myapp 是否具有运行所需的一切。

(不过我猜测是 PATH 问题)

相关内容