gAM*_*OKa 4 linux centos service boot 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
Run Code Online (Sandbox Code Playgroud)
chkconfig 状态
chkconfig --list | grep myapp
myapp 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
那么为什么在脚本中我设置为 85(start) 60(stop) 时,顺序设置为 50?我该如何改变这一点?
解决方案(正如 cjc 在对他的回答的评论中指出的那样)
不正确的语法:
# chkconfig 2345 85 60
Run Code Online (Sandbox Code Playgroud)
更正(chkconfig 后需要冒号):
# chkconfig: 2345 85 60
Run Code Online (Sandbox Code Playgroud)
chkconfig 本质上是从 /etc/rc3.d/S85myapp 到 /etc/init.d/myapp 的符号链接。验证这些链接是否存在。我假设他们这样做,因为“chkconfig --list”显示他们“开启”。
由于您可以从提示符执行 /etc/init.d/myapp,但它不会在启动期间发生,我的猜测是 PATH 存在问题,或者您在执行 myapp 之前需要启动并运行的服务实际上是在 myapp 之后初始化。请记住,/etc/rc3.d(或任何初始运行级别)中的脚本是按排序顺序执行的。验证 myapp 具有运行所需的一切。
(不过我猜是 PATH 问题)
归档时间: |
|
查看次数: |
18584 次 |
最近记录: |