반응형




+tomcat7


-주의 ; tomcat6에서는 war 배포시 서블릿에 대한 정의를 tomcat6에서는 web.xml에서 지정해주어야 한다.
그러나, tomcat7에서는 web.xml이나 코드내에 @WebServlet 지정자 둘 중에 하나만 지정해야 한다. 중복시, 웹앱이 실행이 되지 않을 수 있다.
/usr/tomcat7/logs/catalina.날짜.log 파일을 열어보면 알 수 있다.

-CentOS에서 java는 오라클 사이트에서 따로 구하지 않아도, 그냥 yum에서 jdk7 버전 깔고, 환경 설정만 해주면 된다.

: /etc/profile에 다음의 스크립트를 추가
# java7
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*:.

# tomcat7
export CATALINA_HOME=/usr/tomcat7

export PATH=$PATH:$CATALINA_HOME/bin:$JAVA_HOME/bin

+ 시작 방식도 좀 다름
tomcat6에서는 service tomcat6 start/stop/restart 등으로 했으나, tomcat7에서는 

startup.sh start/stop  
shutdown.sh

아니면 서비스 스크립트 만들면 동일하게 사용 가능.



+ 서비스 데몬 등록 (부팅시 자동 시작)


# vi /etc/init.d/tomcat 를 실행하여 아래내용을 입력하자  (tomcat7 init.d script 검색)


#!/bin/sh
#
# Tomcat7 auto-start
#
# chkconfig: 2345 90 90
# description: Auto-starts tomcat7
# processname: tomcat7
# pidfile: /var/run/tomcat7.pid
case $1 in
start)
    sh /usr/tomcat7/bin/startup.sh
    ;;
stop)
    sh /usr/tomcat7/bin/shutdown.sh
    ;;
restart)  # 신뢰할 수 없으니 restart 는 사용하지 말 것.
    sh /usr/tomcat7/bin/shutdown.sh
    sh /usr/tomcat7/bin/startup.sh
    ;;
esac
exit 0   


chmod 755 /etc/init.d/tomcat
실행권한 설정

chkconfig --add tomcat


-참고; tomcat 서비스가 안 죽으면 java 프로세스를 죽이면 된다. 주의!!!!
위 restart 커맨드는 절대 신뢰하면 안 됨!!!!! 주의!!!! 가끔 포트를 잡은 상태로 서비스가 종료 될 수 있다. 서비스 시작이 address in use로 되어
실패될 수 있음 !!! 스크립트 변경 필요!!!!!



반응형



+ 톰캣/Java 프로세스 모니터링 감시 / 내려가면 다시 실행. respawn

# cat tomcat_respawn.sh

#!/bin/sh
#tomcat PID 추출
PID=`lsof -itcp:8080 | grep LISTEN | awk 'NR==1 {print $2}'`
NEEDRUN=false

if [ ${PID} > 0 ]
then
     wget -q http://localhost:8080/test/test.jsp
     if [ -f test.jsp ]
     then
          rm -f test.jsp
     else
          NEEDRUN =true
     fi
else
     NEEDRUN =true
fi

if [ ${NEEDRUN} == "true" ]
then
     service tomcat7 restart
fi

위 스크립트를 crontab에 등록한다.
#chkconfig 로 crond가 운영중인지 확인한다.

#crontab -e
또는
/etc/crontab을 수정
  •  * /2 * * * * /etc/tomcat_respawn.sh > /dev/null 2>&1
2분마다 실행됨.


+ 다른 스크립트 (참고)
#!/bin/sh

            while true ; do
                /bin/date
                echo 'checking tomcat'
                if /bin/ps -elf | /bin/grep 'java' | /bin/grep 'j2sdk' then
                :
                echo 'WAS GOOD'
                else
                echo 'WAS BAD'
                /usr/local/tomcat/bin/startup.sh
                fi
                sleep 60
            done



반응형

시스템에서 타임존이 맞지 않을 때 강제로 설정하는 방법


+시간 타임존 timezone 문제

CentOS

1. 시스템 및 DB 시간
cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# date()
=>KST

DB>select @@system_time_zone;
=>System time zone : KST

2. Tomcat 시간 설정
/etc/init.d/tomcat7 스크립트에 아래 내용 추가
export JAVA_OPTS="-Duser.timezone=GMT+09:00"

catalina.sh에 아래 추가
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT+09:00"



+ Recent posts