针对自己配置的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