为非登录用户设置环境变量

11

我有一台安装了 Tomcat 的 RHEL 服务器。Tomcat 以一个名为 tomcat 的非登录用户身份运行。我在 /etc/profile.d/myenvvars.sh 中设置了所需的环境变量。

export JRE_HOME=/usr/lib/jvm/jre
export MY_VAR=/usr/share/mydir

环境变量已设置,可以使用终端打印出来:

# echo $MY_VAR
# sudo -u tomcat echo $MY_VAR
然而,当Tomcat启动时,我的环境变量没有被Tomcat识别。根据我发现的这篇文章,当Tomcat是一个无登录用户时,我的环境变量将不会被Tomcat识别。因此,我在~/.bash_profile中使用了上述文件。
. /etc/profile.d/myenvvars.sh

然而,我仍然有同样的问题,环境变量没有被识别。

任何帮助将不胜感激。

1个回答

2

如文章所述,您的设置需要在~/.bashrc中。

可能会有一些机会即使这样也无法工作... 这取决于您的tomcat如何启动。

您可以为tomcat编写自定义脚本以确保它加载环境变量,例如:

tomcat-start.sh

. /etc/profile.d/myenvvars.sh
tomcat

2
将生产脚本依赖于像.bashrc.bash_profile这样的shell启动脚本不是一个好习惯。在应用程序启动脚本中放置初始化步骤是一种更好的实践方法。 - codeforester

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接