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

hoz*_*hoz 8 linux tomcat environment-variables login-script .bash-profile

我有一个安装了tomcat的RHEL服务器.Tomcat作为一个名为tomcat的无登录用户运行.我已将所需的环境变量设置为as /etc/profile.d/myenvvars.sh

export JRE_HOME=/usr/lib/jvm/jre
export MY_VAR=/usr/share/mydir
Run Code Online (Sandbox Code Playgroud)

环境变量已设置并可在终端中使用进行回显

# echo $MY_VAR
# sudo -u tomcat echo $MY_VAR
Run Code Online (Sandbox Code Playgroud)

但是当tomcat启动时,tomcat无法识别我的环境变量.

根据这篇文章,我发现当tomcat启动时我的环境变量将无法被识别,因为tomcat是一个非登录用户.因此我在使用中获取了上述文件 ~/.bash_profile

. /etc/profile.d/myenvvars.sh
Run Code Online (Sandbox Code Playgroud)

但是,我仍然有同样的问题,环境变量没有被重新认识.

任何帮助,将不胜感激.

daK*_*moR 2

正如文章中所述,您链接的设置需要位于~/.bashrc.

有可能即使这样也不起作用......取决于你的 tomcat 是如何启动的。

您可以为 tomcat 创建一个自定义脚本,以确保它加载环境变量,例如类似这样的内容

tomcat-start.sh

. /etc/profile.d/myenvvars.sh
tomcat
Run Code Online (Sandbox Code Playgroud)

  • 对于生产脚本来说,依赖诸如“.bashrc”或“.bash_profile”之类的 shell 启动脚本并不好。这种将初始化步骤放入应用程序启动脚本本身的方法是一种更好的做法。 (2认同)