我试图通过重新分配 start_port 从 1 个父 shell 脚本运行 2 个 Tomcat 实例,但第二个 JVM 没有选择重新分配的 start_port
#!/bin/bash
export CATALINA_BASE_PORT=10000
export JAVA_OPTS='-Dport.http.nonssl=$CATALINA_BASE_PORT'
./apache-tomcat-8.0.5/bin/startup.sh
sleep 5
export CATALINA_BASE_PORT=20000
export JAVA_OPTS='-Dport.http.nonssl=$CATALINA_BASE_PORT'
./apache-tomcat-8.0.5/bin/startup.sh
Tomcat 的第一个实例启动正常,但第二个实例无法启动,因为它选择与第一个相同的端口,10000 并抛出异常,例如端口 10000 已在使用中。请指教。谢谢。
最佳答案
试试双引号。变量替换应该可以正常工作:
$ export CATALINA_BASE_PORT=10000
$ export JAVA_OPTS='-Dport.http.nonssl=$CATALINA_BASE_PORT'
$ echo $JAVA_OPTS
-Dport.http.nonssl=$CATALINA_BASE_PORT
$ export CATALINA_BASE_PORT=10000
$ export JAVA_OPTS="-Dport.http.nonssl=$CATALINA_BASE_PORT"
$ echo $JAVA_OPTS
-Dport.http.nonssl=10000
关于shell - 在父 shell 脚本中重新分配导出的变量以运行 2 个不同的子 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38784230/