/bin: 바이너리와 실행 스크립트
/conf: 톰캣 전역 설정 파일
/lib: 모든 웹앱에서 사용 가능한 JAR들
/logs: 기본 로그 파일 저장
/webapps: 웹 애플리케이션이 위치한 디렉터리
/work: 서블릿이나 JSP파일 컴파일된 소스와 클래스 파일들
/temp: 임시
(25.01.28)
# 기본 톰캣 설정의 작은 JVM 메모리를 늘리는 bin/setenv.sh
#!/bin/sh
MIN_MEMORY="128m"
MAX_MEMORY="512m"
MAX_PERM_SIZE="256m" # Permanaet Generation 영역(클래스, 메서드, 객체 등)
SERVICE_NAME="myWebApp"
JAVA_OPTS="-Dcom.example.servicename=${SERVICE_NAME} -Xms${MIN_MEMORY} -Xmx${MAX_MEMORY} -XX:MaxPermSize=${MAX_PERM_SIZE} ${JAVA_OPTS}"
#!/bin/sh
# 프로세스 종료 함수 정의
killproc(){
local prog=$1 # 첫 번째 인자: 프로세스 이름
local user=$2 # 두 번째 인자: 사용자 이름
local signal="TERM" # 기본 종료 시그널
# 인자가 부족하면 사용법 출력
if [ "$#" = 0 ] ; then
echo $"Usage: killproc {program} {user} {signal}"
return 1
fi
# 세 번째 인자가 있으면 해당 시그널로 변경
if [ "$#" = 3 ]; then
signal=$3
fi
# 프로세스 ID를 검색
PID=`ps -eaf | grep ${prog} | grep -v grep | grep ${user} | awk '{print $2}'`
# 프로세스가 실행 중이라면 종료 시도
if [ ! -z ${PID} ] && [ ${PID} -gt 0 ]; then
echo "kill -${signal} ${PID}"
kill -${signal} ${PID}; # 프로세스 종료
return 1; # 종료 성공 시 1 반환
else
return 0; # 실행 중인 프로세스가 없으면 0 반환
fi
}
# 종료할 서비스 이름
SERVICE_NAME=myWebApp
# Tomcat 설치 경로 설정
TC_HOME=/var/tomcat/tomcat-7.0.55
if [ ! -d ${TC_HOME} ]; then
TC_HOME=`pwd`
fi
# 현재 사용자 이름 확인
USER=`whoami`
# Tomcat 종료 스크립트 실행
cd ${TC_HOME}
./bin/shutdown.sh >& /dev/null
sleep 1
# 반복적으로 종료 시도
for i in 1 2; do
killproc ${SERVICE_NAME} ${USER}
RET=$?
if [ $RET = 0 ]; then
break;
fi;
sleep $i; # 재시도 전 대기
done
# 최종적으로 KILL 시그널로 강제 종료
killproc "${SERVICE_NAME}" "${USER}" "KILL"
(25.01.25)