我有一个/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
以便它可以从启动时运行的脚本中读取?
谢谢
答案1
将您的更改放入其中,/etc/profile.local
以便所有用户都能加载。在这种情况下,放入
JAVA_HOME=/usr/local/java
该文件就足够了。
/etc/boot.local
在给定运行级别的所有其他脚本之后运行,因此您在此处所做的更改不会被其他 init 脚本看到。要使上述示例正常工作,您需要将以下内容放入boot.local
:
export JAVA_HOME=/usr/local/java
/usr/local/tomcat1/bin/startup.sh
即设置环境变量,然后启动启动脚本。