ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Apache-Tomcat>아파치 톰캣 기술지원 전문기업 (주)제스트정보기술 - Tomcat의 마법사 [setenv.sh]
    WEBWAS/Apache,Tomcat 2023. 12. 12. 11:08

    안녕하세요.

    제스트정보기술 입니다.

    오늘은 #tomcat을 운영하면서 많은 도움이 되는 #setenv.sh에 대해 소개해드리겠습니다.

     

     

     

    Tomcat을 기본적으로 설치하면 setenv.sh는 없습니다.

    하지만 catalina.sh에서 $CATALINA_BASE/bin에서 아래와 같이 setenv.sh가 있는지 체크하고 있다면 실행을 합니다.

    if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
       .  "$CATALINA_BASE/bin/setenv.sh"
     elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then
       . "$CATALINA_HOME/bin/setenv.sh" fi

    setenv.sh는 Tomcat Engine이 구동되기 직전, 그러니까 startup.sh -> catalina.sh -> setenv.sh -> Engine 구동 순서로 진행됩니다.

    그렇다면 우리는 setenv.sh를 적극 활용해야겠죠?

    우선 아래와 같이 가동 User를 체크하여 권한 충돌이 발생하는 문제를 방지할 수 있습니다.

    # Check user #####################################
     if [ $USER != "tomcat" ];
             then echo "$0 Apache Tomcat should be running as [tomcat] user. " >&2
             exit 9
    fi

    아시겠지만 필드에서 가동되는 유저를 원래 운영하던 유저로 가동하지 않아 발생하는 문제가 간간히 있습니다.

    또한, 여러가지 환경변수를 catalina.sh나 startup.sh에 넣지 않고 setenv.sh에 넣으면 유지관리에 대단한 이점이 있습니다.

    필요한 설정이나 환경 변수는 한 군데에 몰아넣어 관리 포인트를 줄이는 것은 유지보수함에 있어 기본중의 기본이죠~

    또한 아래처럼 setenv.sh에서 선언한 환경 변수를 server.xml에서 활용할 수도 있습니다.

    # Set Tomcat Variables #####################################
    export JAVA_HOME=/home/tomcat/java/jdk8u352-b08
    export CATALINA_BASE=/home/tomcat/apache-tomcat-9.0.82
    export INST_NAME=node1
    export LOG_BASE=$CATALINA_BASE/logs
    CATALINA_OPTS="$CATALINA_OPTS -Djvm.route=${INST_NAME}"
    CATALINA_OPTS="$CATALINA_OPTS -Dlog.base=${LOG_BASE}"

    마지막으로 Tomcat을 가동할 때나 중지할 때 특별한 command를 실행하고 싶다면 아래처럼 하면 되겠죠?

    # Thread dump #####################################
    if [ $DUMP_ENABLE -eq 1 ] && [ $TMCT_CMD == "stop" ]; then
        echo "===Thread dump enabled==="
        kill -3 `ps -ef | grep tomcat | grep -v grep | grep $INST_NAME | awk '{print $2}'` fi

    위의 코드는 사전에 thread dump를 취득할 수 있도록 실행 가능한 변수를 만들고 톰켓이 중지될 때 자동으로 thread dump를 생성하는 스크립트입니다.

    위의 Script를 활용하여 가동시 Tomcat 프로세스가 있다면 강제로 죽이거나 가동을 지연시키는 등의 방법으로도 활용할 수 있겠죠?

    이처럼 setenv.sh를 활용하면 Tomcat의 유지보수에 대한 기능을 한단계 업그레이드할 수 있으며 관리 차원에도 대단히 활용도가 높은 파일이라고 할 수 있습니다.

    오늘은 Tomcat의 숨기진 기능 중의 하나인 setenv.sh에 대해 알아봤습니다.

    다음 번에도 좋은 내용으로 다시 찾아뵙겠습니다~

     

    <제스트정보기술 기술지원>

    (주)제스트정보기술은 전산시스템 구축에 오픈소스 SW로 구성

    요구사항 분석과/공개 소프트웨어 설치 및 기술지원/서비스 연동/교육 및 컨설팅을 수행 하고 있습니다.

    -. 공개 소프트웨어 기술 지원체계 수립

    -. 공개 SW 교육 지원

    수요기관의 SW 구조/기능을 분석하고, 공개 SW 도입을 위한 분석, 솔루션을 검토함.

    -. 오픈소스 SW 구축을 위한 최근 개발경향 분석

    -. 해당 기능/역할에 대한 공개 소프트웨어 기술데이터 분석

    -. 개방형 OS 도입 및 인프라 기반 WEB/WAS, 오픈 DB 기술지원 체계 수립

    -.Apache, Jboss(Wildfly) was, Linux OS, 오픈 DBMS 구축, 기술지원

    제스트정보기술은 20년 이상의 WEB/WAS 기술지원 경험과 노하우를 바탕으로

    고객의 인프라 상용소프트웨어(Jeus, weblogic,JBoss EAP, Oracle DB등)에 소요되는 제반비용

    (도입, 운영, 유지보수 비용등)을 획기적으로 절감하도록 계획과 방법을 제안하고 있으며

    시스템 서비스의 성능을 전반적으로 개선하여 기술지원, 컨설팅을 제공하고 있습니다.

    시스템 구축 이후에도 서비스 안정화를 위해 지속적인 서비스 모니터링 지원하고 있으며 ,

    고객의 시스템을 안정적으로 운영하기 위해 최선의 노력을 다하고 있습니다.​

    <오픈소스 기술지원 문의>

    영업지원 : sales@xest.kr

    전화번호 : 02-558-5918

    팩스번호 : 02-558-5913

    홈페이지 : http://www.xest.kr

     

Designed by Tistory.