如何在Ubuntu中为系统用户设置环境变量?

时间:2011-07-15 18:38:45

标签: java ubuntu glassfish environment-variables glassfish-3

我为glassfishv3安装创建了一个没有交互式shell的系统用户,因此当通过asadmin启动glassfish时,没有为此用户设置环境变量。

我尝试在init脚本中使用以下命令复制环境:

jhv=$(grep JAVA_HOME /etc/environment)
$jhv
export JAVA_HOME    
sudo -u glassfish -E $glassfishpath/asadmin start-domain domain1

asadmin内部我回显$ JAVA_HOME,正确打印JAVA_HOME。

一旦glassfish启动,我就会使用一种打印环境键值对的方法启动Web服务。 JAVA_HOME不在其中。这会导致glassfish执行的任何需要JAVA_HOME的脚本出现问题。

那么如何在系统用户/ glassfish环境中设置JAVA_HOME,以便在启动java容器后它仍然存在?

1 个答案:

答案 0 :(得分:0)

通常,解决方案是将-E标志添加到sudo命令。这个标志告诉sudo在下载到root访问权限时维护当前用户的环境变量。

看起来你已经在使用这个标志,所以我不知道问题是什么。可能是标志在脚本中无声地失败并且您没有收到通知。您是否尝试在shell中运行脚本的命令手册?结果/输出是什么?