我为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容器后它仍然存在?
答案 0 :(得分:0)
通常,解决方案是将-E
标志添加到sudo命令。这个标志告诉sudo在下载到root访问权限时维护当前用户的环境变量。
看起来你已经在使用这个标志,所以我不知道问题是什么。可能是标志在脚本中无声地失败并且您没有收到通知。您是否尝试在shell中运行脚本的命令手册?结果/输出是什么?