0

我从 JPackage RPM 存储库和 CentOS 6 安装了一个 Tomcat7。当我运行时/etc/init.d/tomcat7,Bash 会生成一个包含';'字符串的 Java 调用命令。这些字符串破坏了 Bash 命令。

这是一个有问题的命令的示例:/usr/lib/jvm/jre/bin/java -server -Xmx1024m -Xms128m -XX:PermSize=128m ';' export -Dmykey=myvalue.

知道什么会导致 Bash 将这些';'字符串插入到命令中吗?Tomcat7 脚本本身应该不会导致问题,因为我已经在其他 Linux 实例上成功使用了相同的 Tomcat7 RPM 包及其脚本。

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 回答