0

JPackage RPM リポジトリからインストールされた Tomcat7 と CentOS 6 があります。実行する/etc/init.d/tomcat7と、Bash は文字列を含む Java 呼び出しコマンドを生成し';'ます。これらの文字列は Bash コマンドを壊します。

問題のあるコマンドの例を次に示します/usr/lib/jvm/jre/bin/java -server -Xmx1024m -Xms128m -XX:PermSize=128m ';' export -Dmykey=myvalue

Bashがこれらの';'文字列をコマンドに挿入する原因は何ですか? 同じ Tomcat7 RPM パッケージとそのスクリプトを他の Linux インスタンスで正常に使用したため、Tomcat7 スクリプト自体が問題を引き起こすことはありません。

4

1 に答える 1

0

私の問題は、の改行文字が原因でした/etc/sysconfig/my_tomcat_instance

ファイルには次のスニペットが含まれていました。

JVM_OPTS="-server -Xmx1024m -Xms128m -XX:PermSize=128m 
    -Dmykey=myval
    -Dmykey2=myval2
    "`

に変えたところ

JVM_OPTS="-server -Xmx1024m -Xms128m -XX:PermSize=128m -Dmykey=myval -Dmykey2=myval2"

問題がなくなり、Tomcat7 を正常に起動できました。

教訓: Bash がソースとするキーと値のペア ファイルに改行文字を入れないでください。

于 2013-01-08T06:55:21.830 に答える