1

我必须在服务器上使用同一个用户启动 2 个 tomcat 实例。我正在尝试在启动 tomcat 时设置不同的 CATALINA_BASE 但未使用此环境变量。

那是我使用的命令:

base0=/home/$INT/inst0
base1=/home/$INT/inst1
#...

su $INT -c "CATALINA_BASE=$base0;$cathome/bin/startup.sh"
su $INT -c "CATALINA_BASE=$base1;$cathome/bin/startup.sh"

这就是我在控制台中看到的:

Using CATALINA_BASE:   /home/mci2/tomcat
Using CATALINA_HOME:   /home/mci2/tomcat
Using CATALINA_TMPDIR: /home/mci2/tomcat/temp

catalina_home 可以,但 catalina_base 不行。

我错过了什么吗?

4

2 回答 2

1

您应该使用单引号:

su -c "var=Hello; echo $var"

对比

su -c 'var=Hello; echo $var' 

shell 解释双引号内的变量,并且如果您没有CATALINA_BASE为执行它的环境设置 ,则在实际执行之前su将其替换为空字符串。su

于 2013-02-01T17:26:48.493 回答
0

如果您在单个主机上运行多个 Tomcat 实例,则应将 CATALINA_BASE 设置为适合每个实例的 .../tomcat_instance1 或 .../tomcat_instance2 目录,并将 CATALINA_HOME 环境变量设置为其文件的通用 Tomcat 安装将在两个实例之间共享。 tomcat - CATALINA_BASE 和 CATALINA_HOME 变量

于 2017-01-04T16:46:16.663 回答