目前,我有几个catalina基地配置了以下目录,
CONF 日志 服务器 web应用 工作
bin,lib和common目录都在$ CATALINA_HOME中。
我现在需要在bin目录中添加一个setenv.sh文件,但我不希望它被所有catalina基础使用。要做到这一点,我想在catalina_base上添加bin diretory,我想要获取setenv.sh文件。 bin目录只包含setenv.sh文件,没有其他内容。其他所有内容仍然在$ CATALINA_HOME / bin /(即startup.sh catalina.sh shutdown.sh等)
这样做会有副作用吗? tomcat在启动时可以同时使用$ CATALINA_BASE / bin /和$ CATALINA_HOME / bin吗?
答案 0 :(得分:5)
如果您使用setenv.sh提供bin,我还没有测试它的行为方式。但这是我从一个CATALINA_HOME配置运行不同实例的许多tomcat应用程序的方法。
如果你有那个配置,那么你可能有自己的启动脚本运行catalina.sh。选项JAVA_HOME,CATALINA_HOME,CATALINA_BASE,可能还有CATALINA_PID。
因此,无论您需要更改或添加到setenv.sh中,只需更改自己的启动脚本即可。或者创建将在启动脚本开始时调用的setenv.sh。并把它放在你自己的bin目录中。
我认为它是linux(在windows中它会类似)。所以你可以有一些应用程序,我们称之为APP1,APP2。两者都有:bin conf logs server webapps work
。目录结构可以是:
/apps/APP1 bin start.sh stop.sh conf logs server webapps work /apps/APP2 bin start.sh stop.sh conf logs server webapps work /opt/apache-tomcat-xxx all the standard tomcat files... /opt/java-1.6 all the standard java files...
在APP1的start.sh中你可以设置: JAVA_HOME,CATALINA_HOME,CATALINA_BASE,可能还有CATALINA_PID,CATALINA_OPTS。
export JAVA_HOME=/opt/java-1.6 export CATALINA_HOME=/opt/apache-tomcat-xxx export CATALINA_BASE=/apps/APP1 export CATALINA_PID=${CATALINA_BASE}/temp/app1.pid.file export CATALINA_OPTS=-Dmy.fancy.variable=hello ${CATALINA_HOME}/bin/catalina.sh start
停止几乎是一样的。你只需要改变开始停止。下一步是将变量定义移动到某个文件,比如说config.ini,然后你必须在start.sh和stop.sh中获取这个文件。在Windows中,您需要将导出更改为set。在不同的shell(如果不是bash)中,您需要按照说明进行操作。