我们正在尝试将其中一个tomcat从7.0.77升级到8.5.51,并且遇到了一些问题。
[关于当前设置的一些历史记录:
Solaris 11.4.20.4.0上的Apache Tomcat 7.0.77,1个以CSH为外壳的webapps warfile。为了设置我们的JAVA_OPTS和CATALINA_OPTS,我们过去已经编辑过bin / catalina.sh,并在第119行中放置了以下内容:。 opts.inc此设置可以完美运行并继续运行。
一个示例opts.inc文件:
#!/bin/sh
JAVA_OPTS="-d64 -server -Xms1g <snip>"
CATALINA_OPTS="-Dtomcat.session=${JVMROUTE} -Dcom.sun.management.jmxremote <snip>"
注意:我们知道这是一种不好的做法,现在不再在我们其他基于bash的tomcat(或该tomcat)上这样做了
现在的问题是,我们正在升级到8.5.51,我们需要使用setenv.sh(似乎是必需的-从我们之前的其他bash env tomcat升级中)。我们尝试了旧方法,但是logs / catalina.out显示未应用ENV参数。这对我们其他正在运行bash的tomcat来说不是问题,因为这可行:
在bash Tomcat上工作(在csh中尝试过,但是不起作用)
#!/bin/sh
JAVA_OPTS="-Dcom1 -Dcom2 -Dcom3 ... etc"
CATALINA="-Dcom4 -Dcom5 etc"
当在命令行上手动应用但不在脚本中手动应用时,此方法有效
cat $TOMCAT_DIR/bin/setenv.sh
#!/usr/bin/csh
setenv FOO "-Dcom1 -Dcom2 -Dcom3 etc"
在该bin目录中运行上述作为测试:./setenv.sh(无错误)
env | grep FOO
没事。
@ csh提示符
setenv FOO“ -Dcom1 -Dcom2 -Dcom3”
env | grep FOO
FOO = -Dcom1 -Dcom2 -Dcom3
我现在真的不知道该怎么办,将不胜感激。
以./setenv.sh
运行csh脚本将启动一个新的shell,在该shell中设置环境,然后在该shell退出时,没有任何改变。
要让它更改当前外壳程序中的环境变量(假设它也是csh或tcsh,则需要以source ./setenv.sh
身份运行它,以便脚本中的命令在您当前的外壳程序中运行,而不是启动一个新的外壳程序)仅用于脚本。