0

我正在使用 Debian 操作系统和 tomcat6。

我导出 CATALINA_OPTS="-Xms1024m -Xmx2048m" 环境变量并创建一个木偶服务:

class tomcat6::service { 
    service { 'tomcat6':
        ensure => running,
        hasstatus => true,
        hasrestart => true,
        enable => true,
    }
}

当 /usr/share/tomcat6/bin/catalina.sh 读取 CATALINA_OPTS 变量以启动 tomcat6 服务时,进程应该收到 CATALINA_OPTS 但它没有显示在进程命令中。我执行ps aux|grep catalina以显示命令详细信息:

tomcat6  10658  1.0  2.0 2050044 189572 ?      Sl   18:04   0:16 /usr/lib/jvm/default-        java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -classpath /usr/share/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-tomcat6-tmp org.apache.catalina.startup.Bootstrap start

Puppet 没有正确接收 CATALINA_OPTS。

我的问题是,如何在执行 puppet tomcat6 服务时让 puppet 读取 CATALINA_OPTS?

谢谢你。

4

2 回答 2

0

我通过为 tomcat6 设置 setenv.sh 解决了这个问题。它工作正常。

于 2013-08-07T06:01:12.413 回答
0

代替

hasstatus => true,

hasstatus => false,

通过这样做,您将强制 puppet 查找 proc 表并找到守护进程,或者换句话说,这将使 puppet ps auxw | grep tomcat6在执行任何其他操作之前运行。

hasstatus => true告诉如果 puppet 收到 astatus != running它会按照指示执行,但在某些情况下,几个守护进程不能正确返回状态(可能是由于涉及多线程)

于 2013-08-06T21:47:15.400 回答