tomcat.sh

이강우 2015/08/03 16:14

tomcat.sh

#!/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
#!/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
@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%

  • tomcat.sh.txt
  • 마지막으로 수정됨: 2025/01/08 07:16
  • 저자 koov