[Linux, CentOS] 톰켓 자동실행기능

    [Linux, CentOS] 톰캣 자동실행기능

     

     

     

     

      대상의 톰캣

     본 내용을 테스트하기 위해서 /usr/local에 있는 test_mobile이라는 이름을 갖고 있는 apache-tomcat을 활용하였다.

    버전은 centOS7을 사용하고 있다.

     

    보통 톰캣은 apache-tomcat 안의 bin 디렉터리 안에 startup.sh가 담당하고 있다.

    tomcat의 실행을 위해서는 이를 명령해야만 실행된다는 것이 기본 원리이다.

     

    그러나 이는 자동 실행하기 위해서는 적합하지 않다.

    Linux의 Service가 아니므로 Linux가 해당 apache-tomcat을 찾아서 재시작할 수가 없다.

     

    그래서 tomcat의 자동실행을 만들기 위해서는 Linux의 service 등록이 필요한 부분이다.

     

     

     

      자동 실행 기능

     어디에서나 사용자의 명령어를 사용하기 위해서는 Linux service의 도움이 필요하다.

    리눅스에서 db를 한 번이라도 끄거나 실행해보았다면 익숙한 명령어가 있다.

     

    systemctl start mysql이다.

     

    이를 활용하여 apache-tomcat에도 적용하려고 한다.

     

     

     

    반응형
    # cd /etc/systemd/system
    
    # ll

    /etc/systemd/system/

    Service의 위치는 /etc/systemd/system에 속해있다.

    여기엔 우리가 사용하는 systemctl의 대부분이 저장되어있다.

     

    그러므로 우리가 필요한 service를 만들기 위해서는 해당 위치에서 확장명이 .service인 파일을 만들면 된다.

     

     

    # vi test_mobile.service
    
    
    
    # Systemd unit file for tomcat
    [Unit]
    Description= TEST_MOBILE # SERVICE NAME, MEMO
    After=syslog.target network.target
    
    [Service]
    Type=forking
    
    #Environment=JAVA_HOME=/usr/lib/jvm/jre   #  Java 설치경로, OPEN JAVA는 SKIP
    Environment=CATALINA_PID=/usr/local/test_mobile/bin/catalina.pid	#apache-tomcat 경로
    Environment=CATALINA_HOME=/usr/local/test_mobile			#apache-tomcat 경로
    Environment=CATALINA_BASE=/usr/local/test_mobile			#apache-tomcat 경로
    Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
    Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
    
    ExecStart=/usr/local/test_mobile/bin/startup.sh   # apache - tomcat 경로
    ExecStop=/bin/kill -15 $MAINPID
    
    User=root		        # Tomcat 관리자 ID
    UMask=0007		        # 허가권
    RestartSec=10			# 재시작 주기
    Restart=always			# 재시작 주기
    
    [Install]
    WantedBy=multi-user.target

    vi test_mobile.service 내용

    #은 주석 문구이다.

    vi의 저장 방식은 실행 서비스 이름. service이다.

     

    필자는 test_mobile이란 apache-tomcat을 실행하기 때문에 test_mobile이라고 명칭을 지었다.

     

    위의 내용을 복사해서 붙여 넣어서 사용하면 된다.

     

    Apache-tomcat을 실행하기 위한 Java jre가 설치되어 있다면, jre 경로 또한 적어줘야 한다.

    만약 OPEN JAVA를 사용할 경우에는 Java jre가 별도로 설정이 되어있지 않으므로 주석 처리해도 상관없다.

     

    User는 대상의 apache-tomcat을 실행하기 위해 사용되는 id를 뜻 한다.

     

    만약 권한 없는 id가 실행하려 한다면, 정상적으로 실행되지 않으므로 주의해야 한다.

     


    //service upload
    # systemctl daemon-reload
    
    //Linux서버 시작 시, 자동 시작
    # systemctl enable test_mobile.service
    
    //service 실행하기
    # systemctl start test_mobile
    
    // service 종료하기
    # systemctl stop test_mobile
    
    // service 재실행하기
    # systemctl restart test_mobile
    
    // service 실행상태 확인하기
    # systemctl status test_mobile

    적용 후, Service의 간단한 명령어를 실행시킨다.

    저장 후, 간단한 명령어를 실행한다.

     

    service 내용이 추가, 변경, 삭제될 경우에는

    반드시 systemctl daemon-reload 명령어를 수행해야 한다.

     

    그 후에 필요한 systemctl 명령어를 실행하기만 하면 끝났다.

     

    만약. 위에처럼 아무런 메시지가 출력이 안 되지 않고 무언가가 출력되었다면 service 입력 부분에서 잘못된 것이 있다는 뜻이다. 그러므로 status로 실행 여부를 체크하여 오타를 고치도록 해야 한다.

     

     

     

    실행 후에는 apache-tomcat에서 log를 확인하여 실행 여부를 확인하자.

    apache-tomcat에서./shutdown.sh 명령어를 수행했을 때, 약 10초 후에 다시 재실행이 된다면 정상적으로 끝마쳤다.

     

     

    반응형

    댓글

    Designed by JB FACTORY