我必须在服务器上使用同一用户启动 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。
我错过了什么?
您应该使用单引号:
su -c "var=Hello; echo $var"
与
su -c 'var=Hello; echo $var'
shell 解释双引号内的变量,并且您尚未为执行的环境设置CATALINA_BASE
,su
在实际执行su
之前将其替换为空字符串。
如果您在单个主机上运行多个 Tomcat 实例,则 应将CATALINA_BASE设置为等于 .../tomcat_instance1 或 .../tomcat_instance2 每个实例的目录和 CATALINA_HOME环境变量到普通雄猫 其文件将在两个实例之间共享的安装。 雄猫 - CATALINA_BASE和CATALINA_HOME变量