2016-08-05 7 views
0

私はとstart_portを再割り当てすることにより、1つの親シェルスクリプトから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の1番目のインスタンスは正常に起動しますが、2番目のインスタンスは1番目、10000と同じポートを選択しており、ポート10000などの例外は既に使用されているため開始できません。お知らせ下さい。ありがとう。

答えて

0

二重引用符を使用してください。変数の置換は正常に行われるはずです。

$ 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 
+0

変数の置換は正しく行われていますが、JVMは2つのインスタンスに対して別々のポートを選択していません。 2番目のインスタンスを実行しているときのJVMは、1番目のインスタンスと同じポートを選択していて、失敗しています。変数置換は正しく行われていますが。 –

+0

AFAIK、bash変数は一重引用符では置換されません。 –

関連する問題