启动时未在 SuSe init.d 脚本中找到环境变量

启动时未在 SuSe init.d 脚本中找到环境变量

我有一个/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

即设置环境变量,然后启动启动脚本。

相关内容