我有一个/etc/init.d/tomcat1脚本,它在rc级别3和5上启动时运行。此脚本在启动时调用/usr/local/tomcat1/bin/startup.sh 。
虽然我可以从控制台手动执行/usr/local/tomcat1/bin/startup.sh ,但在启动时,我在/var/log/boot.msg得到以下内容:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program
之后,我在/etc/init.d/boot.local添加了以下内容:
export JAVA_HOME="/usr/local/java"
但是我仍然收到关于JAVA_HOME丢失的信息。
我最终做的是修改/usr/local/tomcat1/bin/catalina.sh并硬编码如下:
JAVA_HOME="/usr/local/java"
Tomcat现在可以在启动时启动,但是我知道在catalina.sh脚本中硬编码并不好。
所以问题是,我怎样才能设置/导出JAVA_HOME ,使其可以从启动时运行的脚本读取?
谢谢
把你的修改放到/etc/profile.local这样他们就可以加载所有的用户。 在这种情况下,将JAVA_HOME=/usr/local/java放在该文件中就足够了。
/etc/boot.local在给定运行级别的所有其他脚本之后运行,所以在其他脚本中将看不到其他脚本。 对于上面的示例工作,您需要将以下内容放在boot.local :
export JAVA_HOME=/usr/local/java /usr/local/tomcat1/bin/startup.sh
即设置环境variables,然后启动启动脚本。