在Solaris 11.4(csh)上将Apache Tomcat:从7.0.77升级到8.5.51,

问题描述 投票:0回答:1

我们正在尝试将其中一个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

我现在真的不知道该怎么办,将不胜感激。

variables tomcat solaris environment csh
1个回答
0
投票

./setenv.sh运行csh脚本将启动一个新的shell,在该shell中设置环境,然后在该shell退出时,没有任何改变。

要让它更改当前外壳程序中的环境变量(假设它也是csh或tcsh,则需要以source ./setenv.sh身份运行它,以便脚本中的命令在您当前的外壳程序中运行,而不是启动一个新的外壳程序)仅用于脚本。

© www.soinside.com 2019 - 2024. All rights reserved.