我正在运行 CentOS 6.2 - 我刚刚将一些应用程序迁移到故障转移服务器,并将它们的初始化脚本复制到 /etc/init.d 中。
我已将它们设为可执行文件,使用 chkconfig -add 将它们添加到 chkconfig,设置它们的级别,确保它们位于 /etc/rc.d/ 中 - 确保我可以从 rc2.d 等执行它们。两个服务器上的权限相同。它们也按照与主服务器上相同的顺序运行
但重启后它们却无法启动。有什么想法吗?
违法者如下:
jetty 0:off 1:off 2:on 3:on 4:on 5:on 6:off
smart 0:off 1:off 2:on 3:on 4:on 5:on 6:off
/etc/init.d:
-rwxr-xr-x. 1 root root 14456 Mar 13 20:21 jetty
-rwxrwxrwx. 1 root root 5829 Mar 29 09:58 smart
/etc/rc.d/rc3.d
lrwxrwxrwx. 1 root root 15 Mar 29 19:21 S99jetty -> ../init.d/jetty
lrwxrwxrwx. 1 root root 11 Mar 26 17:12 S99local -> ../rc.local
lrwxrwxrwx. 1 root root 15 Mar 29 19:21 S99smart -> ../init.d/smart
我检查过了,我处于运行级别 3。我检查了它们的日志,没有迹象表明它们已经启动。我可以轻松手动启动它们 - 其他服务也正常启动。
我真的完全没有主意了。
答案1
我想我可能已经解决了。
由于某种原因,init 脚本没有被复制到 /etc/rc.d/init.d !我已经在那里创建了符号链接,现在 chkconfig 正在拾取它们,并且它们中的大多数现在都在启动时启动。
答案2
CentOS 6.5
我是和的用户Jetty 9.1.0.v20131115
。我遇到了您描述的相同症状。
我能够通过jetty.sh
分别更新/etc/init.d/jetty
、分别解决我的问题/etc/rc.d/init.d/jetty
。
在此脚本中,在定义中NAME
,更改+
为*
,即更改
NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]+//' -e 's/\.sh$//')
为
NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//')
该jetty.sh
脚本曾经有一个chkconfig
相关的错误。此错误已在提交中修复。
背景:在有缺陷的版本中,NAME
环境变量被设置为jetty99
,99来自chkconfig
配置.
该脚本通常被命名jetty
,因此有缺陷的版本将寻找名为/etc/default/jetty99
而不是正确的配置文件/etc/default/jetty
。
答案3
您可以使用命令检查状态ntsysv
吗?请确保选择了所需的守护进程。
守护进程是否正确启动/sbin/service daemonname start
?