개발서버에 JDK버전 여러개 관리하던방법
2021. 9. 14. 10:48ㆍ톰캣관련
반응형
개발서버에 was1번부터 was8번까지 여러개의 톰캣을 아파치에 연결해서 사용중이였는데 각 톰캣마다 JDK를 다른버전으로 임의로 지정해서 사용중인걸 알게됬음.
아래 방법처럼 리눅스에 java_home을 윈도우에서 하듯이 환경변수로 잡아서 하는방법이 있고, 사용중인 톰캣에서 지정해서 하는 방법이 존재하고!(catalina.sh 직접수정하여 거기에서 home경로 지정)
위 2가지를 생각했는데 JDK버전이 안맞았다.
1.
source /etc/profile
해당부분에 설정되어있는 java_home 의 경우 리눅스 환경에 설정되어있는
환경변수로써의 jdk버전. 톰캣은 다르게 설정하여 사용할수있음.
현재 우리 개발서버 기준!
/data/tools/was 해당위치에 tomcat 8.5, 9.0 2개의 버전이 존재함.
각각 다른 jdk를 세팅해서 사용하는중인데
9.0의 경우
/data/tools/was/tomcat9.0.43/bin 내부에 catalina.sh 파일을 열었을때
export JAVA_HOME=/data/tools/jdk/jdk1.8.0_281 로 되어있음 9.0에 jdk 1.8버전
또는 set JAVA_HOME =경로 형식으로 지정되는데
아무리봐도 설정이 같은 톰캣을쓰는데 JDK버전이 다른경우가 존재하는데
각각 설정하는부분이 안보였다.
더 찾아봤더니 쉘 스크립트로 명령어 형식으로 서버를 시작하거나 종료했었는데 아래와 같았음.
이런 방법도 있더라!
COMMAND=${1}
WAS=${2}
if [ "$WAS" == "was1" ] || [ "$WAS" == "was2" ] || [ "$WAS" == "was3" ] || [ "$WAS" == "was4" ] || [ "$WAS" == "was5" ] || [ "$WAS" == "was6" ] || [ "$WAS" == "was7" ] || [ "$WAS" == "was8" ]; then
if [ "$WAS" == "was1" ] || [ "$WAS" == "was5" ]; then
JAVA_HOME=/data/tools/jdk/jdk1.7.0_80
CATALINA_HOME=/data/tools/was/tomcat8.5.63
CATALINA_OPTS="-XX:PermSize=1024m -XX:MaxPermSize=2048m"
elif [ "$WAS" == "was6" ]; then
JAVA_HOME=/data/tools/jdk/jdk1.8.0_281
CATALINA_HOME=/data/tools/was/tomcat8.5.63
CATALINA_OPTS="-XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=2048m"
else
JAVA_HOME=/data/tools/jdk/jdk1.8.0_281
CATALINA_HOME=/data/tools/was/tomcat9.0.43
CATALINA_OPTS="-XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=2048m"
fi
CATALINA_BASE=/data/tools/was/base/${2}
CATALINA_OPTS="-Xms1024m -Xmx5120m -XX:+UseG1GC -Dfile.encoding=UTF-8 $CATALINA_OPTS"
CATALINA_OUT=/data/deploy/WEB_LOGS/$WAS/catalina.out
export JAVA_HOME CATALINA_HOME CATALINA_BASE CATALINA_OPTS CATALINA_OUT LANG
if [ "$COMMAND" == "start" ]; then
echo "Start $WAS"
$CATALINA_HOME/bin/startup.sh
echo $?
elif [ "$COMMAND" == "stop" ]; then
echo "Stop $WAS"
$CATALINA_HOME/bin/shutdown.sh
echo $?
elif [ "$COMMAND" == "restart" ]; then
echo "Stop $WAS"
$CATALINA_HOME/bin/shutdown.sh
echo $?
echo "Start $WAS"
$CATALINA_HOME/bin/startup.sh
echo $?
elif [ "$COMMAND" == "log" ]; then
tail -f $CATALINA_OUT
elif [ "$COMMAND" == "status" ]; then
PID=`/bin/ps -aef |/bin/grep 'catalina.startup.Bootstrap'|/bin/grep was/base/${WAS}`
if [ "$PID" = "" ]; then
echo "$WAS is down"
else
echo "$WAS[pid=$PID] is running"
fi
else
echo $"Usage: {start|stop|status|log} $2"
exit 1
fi
else
echo "Usage: {start|stop|status|log} {was1|was2|was3|was4|was5|was6|was7|was8}"
exit 1
fi
exit 0
반응형
'톰캣관련' 카테고리의 다른 글
Apache2+Tomcat8 연동 및 기타 겪은 사항들 정리 (0) | 2021.09.14 |
---|---|
톰캣exe파일로 설치uninstall.exe 오류해결방법 (0) | 2021.09.14 |
톰캣 윈도우 서비스로 등록해서 사용하던중 발생한 에 (0) | 2021.09.14 |
아파치 설정에 대해 정리! (0) | 2021.09.13 |
톰캣에서 JDK버전 체크방법 (0) | 2021.09.13 |