rc.d/rc.local 自动启 tomcat 启不来

针对自己配置的JDK环境有可能会出现这样的情况。

tomcat能启来。但自启动就不行,原因 JDK是后安装的,环境变量配置在 /etc/profile 里面。

tomcat 配了自启动。但reboot后tomcat没有启来。分析思路
A.rc.d/rc.local有没有执行权限,如果有。
B.看里面的命令有没有被执行。
可以用>>将内容重定向到文件中,查看文件来看执行结果。(类似我们程序中通过日志排查问题)。

 

图中可以看出 /tmp/rcd.log 里面,红字1 是记录下来了。
执行红字2的时候,报 JAVA_HOME 环境变量找不到,

但输入java -version又能看到 JDK是1.8,而且直接运行tomcat8080/bin/startup.sh是可以启动的。

分析下来只有一种可能性。当linux系统开始跑rc.d/rc.local里面脚本的时候,JAVA_HOME还没有生成。

【解决方案】

写一个tomcat.sh 脚本,里面导入一下JDK的环境变量,再执行start.sh,最后这个 tomcat.sh 配置到rc.local中。

 tomcat.sh 内容如下

#!/bin/sh
# ##################################################################
#             Powered by Iron Info ChenJun
# ##################################################################
# Tomcat Startup 

export JAVA_HOME=/usr/local/iron/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib


/usr/local/iron/tomcat8080/bin/startup.sh >> /tmp/tomcat.log
/usr/local/iron/tomcat8081/bin/startup.sh >> /tmp/tomcat.log
/usr/local/iron/tomcat8082/bin/startup.sh >> /tmp/tomcat.log
原文地址:https://www.cnblogs.com/vipsoft/p/9529296.html