遇到了一个特别坑的问题。
本来想着在rc.local文件里添加tomcat启动命令,使tomcat开机自启。之前在其他服务器上直接这样操作是没问题的,但很幸运的是,现在忽然就不行了。
开始排错:
1.确定/etc/rc.d/rc.local拥有可执行权限,并且tomcat命令直接复制出来执行也是正常的.正常来说,这个正常就应该是正常的。无奈,进行下一步
2.那就查看系统启动日志message,执行cat /var/log/messages|grep rc.local 可以发现以下报错。即java_home和jre_home都没有设置,而这个是必须的。由此我推测在rc.local执行前,/etc/profile里设置的系统环境变量没有正常赋值
3.确认是否是系统环境变量获取问题,所以我们在rc.local中打印变量(需要重启服务器)。可以看到打印出来的变量为空,判断正确
4.于是,试着在rc.local中重新执行系统变量赋值。即添加红色部分内容,具体需要根据自己的java路径修改呢
系统变量赋值语句可以直接复制/etc/profile里的java变量赋值
[root@99 ~]# tail -n 5 /etc/profile JAVA_HOME=/usr/local/jdk JRE_HOME=/usr/local/jdk/jre CLASS_PATH=.:/$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
5.重启服务器。可以看到tomcat正常开机自启了
题外话:这里就涉及到linux开机启动流程问题了,所以说一些比较基础的东西还是要知道一下的