— 이강우 2015/08/03 16:14
tomcat.sh
LINUX용
JDK 1.8+ 버전용
#!/bin/sh
##############################################
# instance : sample
# description : sample instance environment
# date : 2024-12-05
# author : kwlee2@linuxdata.co.kr
# copyright : Linux Data System co.
# http://linuxdata.co.kr
##############################################
ABSOLUTE_PATH="$(cd $(dirname "$0") && pwd -P)"
PROFILE_PATH="${ABSOLUTE_PATH%/*}"
DIR_NAME="${PROFILE_PATH##*/}"
. $ABSOLUTE_PATH/tomcat.env
echo "JAVA_OPTS = ${JAVA_OPTS}"
if [ -z "$SERVER_NAME" ]
then
echo "WARNING : tomcat.env is not configured."
echo "WARNING : Program Exit."
exit 1
fi
if [ "$DIR_NAME" != "$SERVER_NAME" ]
then
echo "WARNING : DIRECTORY and SERVER_NAME are not same"
echo "WARNING : Program Exit."
exit 1
fi
if [ $TOMCAT_USER != $UNAME ]
then
echo "WARNING : Current User is [$UNAME]. MUST run to [$TOMCAT_USER]."
echo "WARNING : Program Exit."
exit 1
fi
case $1 in
start|run)
#RESULT=`$CATALINA_HOME/bin/catalina.sh configtest > /dev/null 2>&1`
RESULT=`$CATALINA_HOME/bin/catalina.sh configtest`
if [ $? -ne 0 ]
then
echo "WARNING : server.xml configuration error. Program Exit."
echo "$RESULT"
exit 1
else
if [ "${USE_LARGEPAGE}" == "true" ]; then
# 현재 HugePages 크기와 갯수 읽기
PAGESIZE=$(grep Hugepagesize /proc/meminfo | awk '{print $2}') # kB 단위
HUGEPAGE=$(grep HugePages_Free /proc/meminfo | awk '{print $2}')
# HugePages 크기를 MB로 변환
PAGESIZE_MB=$((PAGESIZE / 1024))
# 필요한 HugePages 수 계산
REQUIRED_HUGEPAGE=$((HEAP_MAX / PAGESIZE_MB))
# 정보 출력
echo "현재 HugePages 크기: ${PAGESIZE_MB} MB"
echo "현재 사용 가능한 HugePages 개수: ${HUGEPAGE}"
echo "힙 메모리 최대 크기: ${HEAP_MAX} MB"
echo "필요한 HugePages 개수: ${REQUIRED_HUGEPAGE}"
# HugePages가 충분하지 않은 경우 경고 출력
if [ "$HUGEPAGE" -lt "$REQUIRED_HUGEPAGE" ]; then
echo "ERROR: HugePages가 충분하지 않습니다. 최소 ${REQUIRED_HUGEPAGE}개 필요하지만 현재 ${HUGEPAGE}개만 사용 가능합니다." >&2
exit 1;
else
echo "HugePages 설정이 충분합니다."
fi
fi
$CATALINA_HOME/bin/catalina.sh $@
fi
;;
stop)
$CATALINA_HOME/bin/catalina.sh $1 10 -force
;;
*)
$CATALINA_HOME/bin/catalina.sh $@
esac
exit 0
# EOF
JDK 11 이하 버전용
#!/bin/sh
##############################################
# instance : sample
# description : sample instance environment
# date : 2015-03-27
# author : kwlee2@linuxdata.co.kr
# copyright : Linux Data System co.
# http://linuxdata.co.kr
##############################################
ABSOLUTE_PATH="$(cd $(dirname "$0") && pwd -P)"
PROFILE_PATH="${ABSOLUTE_PATH%/*}"
DIR_NAME="${PROFILE_PATH##*/}"
. $ABSOLUTE_PATH/tomcat.env
if [ -z "$SERVER_NAME" ]
then
echo "WARNING : tomcat.env is not configured."
echo "WARNING : Program Exit."
exit 1
fi
if [ "$DIR_NAME" != "$SERVER_NAME" ]
then
echo "WARNING : DIRECTORY and SERVER_NAME are not same"
echo "WARNING : Program Exit."
exit 1
fi
if [ $TOMCAT_USER != $UNAME ]
then
echo "WARNING : Current User is [$UNAME]. MUST run to [$TOMCAT_USER]."
echo "WARNING : Program Exit."
exit 1
fi
case $1 in
start|run)
#RESULT=`$CATALINA_HOME/bin/catalina.sh configtest > /dev/null 2>&1`
RESULT=`$CATALINA_HOME/bin/catalina.sh configtest`
if [ $? -ne 0 ]
then
echo "WARNING : server.xml configuration error. Program Exit."
echo "$RESULT"
exit 1
else
$CATALINA_HOME/bin/catalina.sh $@
fi
;;
stop)
$CATALINA_HOME/bin/catalina.sh $@ 10 -force
;;
*)
$CATALINA_HOME/bin/catalina.sh $@
esac
exit 0
# EOF
DOS / WINDOWS용
@echo off
REM ##############################################
REM # instance : sample
REM # description : sample instance environment
REM # date : 2016-08-02
REM # author : KangWoo Lee
REM # kwlee2@linuxdata.co.kr
REM # copyright : Linux Data System co.
REM # http:\\linuxdata.co.kr
REM # platform : WINDOWS / DOS
REM ##############################################
set ABSOLUTE_PATH="%~dp0"
set PATH_TOKEN=%ABSOLUTE_PATH:\=;%
set ARG=%1
for /F "tokens=* delims=;" %%i IN (%PATH_TOKEN%) DO call :LAST_FOLDER %%i
goto :EOF
:LAST_FOLDER
if "%1"=="" (
@echo %DIR_NAME%
goto :START_SCRIPT
)
SET DIR_NAME=%1
SHIFT
goto :LAST_FOLDER
REM =========================================
:START_SCRIPT
call %ABSOLUTE_PATH%env.cmd
REM ==========================================
echo CATALINA_HOME=%CATALINA_HOME%
echo CATALINA_BASE=%CATALINA_BASE%
echo CATALINA_OPTS=%CATALINA_OPTS%
echo CATALINA_OUT=%CATALINA_OUT%
echo CATALINA_PID=%CATALINA_PID%
echo CATALINA_TMPDIR=%CATALINA_TMPDIR%
echo JAVA_HOME=%JAVA_HOME%
echo JAVA_OPTS=%JAVA_OPTS%
if NOT "%DIR_NAME%" == "%SERVER_NAME%" (
echo DIR_NAME:%DIR_NAME%
echo SERVER_NAME:%SERVER_NAME%
echo WARNING : DIRECTORY and SERVER_NAME are not same
echo WARNING : Program Exit.
goto :EOF
)
call %CATALINA_HOME%\bin\catalina.bat %ARG%