본문 바로가기

Apache / Tomcat

[Linux] 서버 부팅시 Tomcat 자동 실행

반응형

리눅스에서 Tomcat을 설치하는 방법은 아주 간단하다. 사실 설치라고 말하기에도 뭐한게,
Tomcat 설치시에는 그냥 압축만 풀어주면 되니 따로 설치라고 표현할 것도 없다.

물론 서버 환경과 용도에 따라 최적의 상태로 설정값들을 바꾸기는 하지만, 뭐 그건 설치보다는 튜닝이라고 하는게 맞을듯 하다.

여튼, 리눅스에서 Tomcat을 설치했을때의 문제는 서버 부팅시에 Tomcat이 자동으로 실행되지 않는다는 것이다.
윈도우처럼 자동으로 서비스에 등록되고 실행되면 좋겠지만, 우리의 친절한 리눅스에게 그런거 따위 ...

Tomcat을 자동 실행되게 하기 위해선 간단하게 아래와 같은 절차가 필요하다.

실행 스크립트 작성 -> run level 등록


1. 실행 스크립트 작성

[root@tourWeb1 ~]# cd /etc/rc.d/init.d/
[root@tourWeb1 ~]# vi tomcat

스크립트 내용

#!/bin/bash
# Startup script for the Tomcat Server
# chkconfig: 345 50 50
# description: Tomcat is a Web application server.
# processname: java
# directory : CATALINA_HOME=/usr/local/tomcat7
source /etc/profile
export CATALINA_HOME=/usr/local/tomcat7
case "$1" in
    start)
        echo "Starting tomcat: "
        su - test -c $CATALINA_HOME/bin/startup.sh
        ;;
    stop)
        echo "Shutting down tomcat: "
        su - test -c $CATALINA_HOME/bin/shutdown.sh
        ;;
    restart)
        echo "Restarting tomcat: "
        su - test -c $CATALINA_HOME/bin/shutdown.sh; 
        su - test -c $CATALINA_HOME/bin/startup.sh
        ;;
    *)
        echo "Usage: service tomcat {start|stop|restart}"
        exit 1
esac
exit 0



위의 스크립트에서 서버 환경에 맞게 수정이 필요하다.



아래의 항목을 서버에 설치되어있는 톰캣 경로로 변경한다

# directory : CATALINA_HOME=/usr/local/tomcat7
export CATALINA_HOME=/usr/local/tomcat7



위의 su - test 로 시작되는 문구는 해당 user 계정으로 톰캣을 실행하겠다는 의미이니, test 부분을 사용자 계정ID로 변경한다.

su - test -c $CATALINA_HOME/bin/startup.sh


su - test -c $CATALINA_HOME/bin/shutdown.sh


su - test -c $CATALINA_HOME/bin/shutdown.sh;

su - test -c $CATALINA_HOME/bin/startup.sh



2. 파일 소유권/실행권한 지정 및 run level 등록

# 사용자 계정에게 소유권 변경
[root@tourWeb1 ~]# chown test:test tomcat

# 실행권한 주기
[root@tourWeb1 ~]# chmod 755 tomcat


# runlevel 등록
[root@tourWeb1 ~]# chkconfig --add tomcat

# 등록확인
[root@tourWeb1 ~]# chkconfig --list tomcat




3. tomcat 프로세스 수동 실행/정지 해보기.

[root@tourWeb1 ~]# service tomcat start
[root@tourWeb1 ~]# service tomcat stop




끝으로 서버를 재부팅 할수있는 여건이 되면 재부팅을 통해 해당 서비스가 정삭적으로 실행되는지 확인한다.