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

标签 linux tomcat environment-variables bash login-script

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

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

环境变量已设置,可以在终端使用

# echo $MY_VAR
# sudo -u tomcat echo $MY_VAR

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

根据 this article 我发现当tomcat启动时我的环境变量将无法识别,因为tomcat是一个无登录用户。因此,我使用

~/.bash_profile 中获取了上述文件
. /etc/profile.d/myenvvars.sh

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

如有任何帮助,我们将不胜感激。

最佳答案

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

即使这样也可能无法正常工作...取决于您的 tomcat 的启动方式。

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

tomcat-start.sh

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

关于linux - 为非登录用户设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36503021/

相关文章:

linux - 适合 Linux 的 SVG 渲染器?

linux - 适用于 Suse 的 Ocilib 10.3

java - 在 Java Web 应用程序(JAX RS,Jersey)中提交表单时将 ArrayList 传递到 Response 类方法

php - 为什么有些字符无法从 Linux/Bash 环境变量中提取到 PHP 中?

linux - Gnuplot 4.6 xtics 标签消失

java - 实例化 MQ ConnectionFactory 对象时出错

tomcat - 将 grails/java 8 编译的 war 部署到 tomcat 7/JVM 7?

ruby-on-rails - 环境变量在cloud9中如何工作

Python 无法通过 TravisCI 上存在且位于 PATH 中的子进程启动命令

java - 用JAVA扫描一系列文件夹