티스토리 뷰

Computer/OS

[LINUX] 리눅스에 톰켓 서비스 등록하기

인생이글케쉬우냐 2014. 4. 21. 16:11

1. 리눅스 등록방법은

(1) 압축파일 받기

(2) 특정위치에 압축 해제하기

(3) 서비스로 등록하거나 환경변수 설정하고 쓰기

 

위 세단계로 진행하면 됩니다.

[참고 : http://blog.naver.com/donghoak?Redirect=Log&logNo=100190126818]

[참고 : http://skyunoe.blog.me/20109261542]

[참고 : http://cafe.naver.com/withjina80/190]

 

대부분 (1)과 (2), 그리고 환경변수 설정에 대해서는 잘 설명해 두었기 때문에 그 부분은 간략하게 과정만 적겠습니다.

 

 

(1) 압축파일 받기

--> 톰켓 사이트로 들어가서 tar로 된 파일을 다운받습니다.

--> (http://tomcat.apache.org/) 사이트에 들어가면 좌측의 Download 목록에서 자바에 맞춰서 필요한 버전을 다운받으시면됩니다.

 

저는 따로 쓰던 톰켓을 그대로 서버에 업로드 하였기 때문에 이 과정은 생략했습니다.

 

 

 

(2) 특정위치에 압축 해제하기

--> 이건 개발자가 정하기 나름같습니다. 저의 경우는 /usr/local/ 하위에 자바와 톰켓을 두었습니다.

여기저기 서핑하다보니 /usr/lib/에 두는 사람도 많더군요.. /home/하위에 두는 사람도 있고..

이 위치를 환경변수 설정에만 틀리지 않게 적용해 두면됩니다.

 

저는 쓰던 톰켓을 그대로 서버로 업로드하고 실행파일의 권한만 755로 부여해주었습니다.

(이때 catalina.sh만 755로 했다가 한참을 삽질했습니다. 권한은 sh확장자의 모든 실행파일에 755로 주세요

권한 부여 명령어 : chmod 755 *.sh

 

 

 

(3) 서비스로 등록하거나 환경변수 설정하고 쓰기

<--둘중에 한가지만 하면 됩니다.

 

(3-1) 환경변수 설정하기

루트에서 /etc 폴더로 들어가보면 profile이라는 파일이 있습니다.

그 파일 제일 하단에 환경변수를 설정해주면됩니다.

 

export JAVA_HOME=/usr/local/jdk1.7.0_51
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH

 

자바의 경우는 위와같이 설정해줍니다.

톰켓은 CATALINA_HOME으로 해서 위치를 설정해주면됩니다.

(TOMCAT_HOME으로 써도 됨. 이건 개발자 취향)

 

export JAVA_HOME=/usr/local/jdk1.7.0_51
export CATALINA_HOME=/usr/local/tomcat6

export JAVA_OPTS="-server -Xms512m -Xmx512m -XX:MaxPermSize=256m"
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

 

이런식이 되면 됩니다.

 

 

(3-2) 서비스 등록하기

톰켓을 서비스로 등록할때는 등록할 내용에 환경변수에 관한 내용을 적기 때문에 profile 파일에는 환경변수를 적지 않아도 됩니다.

방법은 아래의 순서로 하면 됩니다.

 

[1] 서비스 등록할 파일 업로드하기

[2] 서비스를 등록하기

[3] 등록한 서비스가 제대로 적용됐는지 확인하기

[4] 톰켓을 실행해보기

 

 

[1] 서비스 등록할 파일 업로드하기

서비스에 등록한 파일을 우선 생성합니다.

확장자 없이 tomcat으로 생성합니다. (이름은 호출할 서비스명이 됩니다)

 

#=========================================

#!/bin/sh
#startup script for Tomcat
#
# chkconfig: 35 85 15
# description: apache tomcat 6.x
#
# processname: tomcat
#
# Source function library.
export JAVA_HOME=/usr/local/jdk1.7.0_51
export CATALINA_HOME=/usr/local/tomcat6

export JAVA_OPTS="-server -Xms512m -Xmx512m -XX:MaxPermSize=256m"
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
# See how we were called.
case "$1" in
  start)
  echo -n "Starting tomcat: "
  $CATALINA_HOME/bin/catalina.sh start
  echo
  ;;
  stop)
  echo -n "Shutting down tomcat: "
  $CATALINA_HOME/bin/catalina.sh stop
  echo
  ;;
  restart)
  $0 stop
  sleep 2
  $0 start
  ;;
  *)
  echo "Usage: $0 {start|stop|restart}"
  exit 1
esac
exit 0

#=========================================

 

위와같은 내용으로 tomcat 파일을 생성합니다.

(파일을 사용하기 위해 권한을 755로 주었습니다)

 

 

[2] 서비스를 등록하기

1)) 파일을 /etc/init.d/ 또는 /etc/rc.d/init.d 하위에 둡니다.(<-- 둘다 같은 폴더입니다.)

2)) chkconfig --add tomcat 이라는 명령어로 위에 업로드한 tomcat을 서비스에 등록합니다.

 

서비스 등록 -> chkconfig --add 서비스명

서비스 목록 -> chkconfig --list

서비스 삭제 -> chkconfig --del 서비스명

 

 

[3] 등록한 서비스가 제대로 적용됐는지 확인하기

tomcat 파일이 있는 /etc/rc.d/init.d 위치에서

./tomcat

이라고 명령어를 쳐봅니다.

-bash: ./tomcat: No such file or directory
라고 뜬다면 현재 명령어를 실행하는 위치가 tomcat 파일이 있는 위치가 아닌지 확인해보세요

 

-bash: ./tomcat: /bin/sh^M: bad interpreter: No such file or directory

라고 뜬다면 윈도우에서 편집하고 리눅스로 파일복사한 경우가 아닌지 확인해보세요

 

 

맞다면 아마 파일 내용 줄마다 ^M이 붙어서 발생한 문제이므로

리눅스내에서 vi편집을 통해서 ^M을 전부 삭제해주거나

notepad++의 편집탭>줄끝문자 변환> UNIX 형식으로 변환 을 눌러준 후 저장해서 업로드하면 됩니다.

 

 

 

Usage: ./tomcat {start|stop|restart}
라고 뜨면 서비스가 정상적으로 적용이 된 것입니다.

 

 

[4] 톰켓을 실행해보기

아래와 같이 명령어를 이용해 톰켓을 실행해 봅니다.

service tomcat start

명령어 : service 톰켓서비스명 start

 

이때 아래와 같이 뜨면 서비스 사용엔 문제가 없습니다.


[root@localhost init.d]# service tomcat start
Starting tomcat: Using CATALINA_BASE:   /usr/local/tomcat6

Using CATALINA_HOME:   /usr/local/tomcat6
Using CATALINA_TMPDIR: /usr/local/tomcat6/temp
Using JRE_HOME:        /usr/local/jdk1.7.0_51
Using CLASSPATH:       /usr/local/tomcat6/bin/bootstrap.jar

만약 basedir이 아래와 같이 잘못됐다고 메세지가 뜬다면 위에 제가 적은대로 실행파일들의 권한을 확인해주세요. catalina.sh외에 모든 sh들의 권한을 755로 변경해주면 됩니다.

[root@localhost init.d]# service tomcat start
Starting tomcat: The BASEDIR environment variable is not defined correctly
This environment variable is needed to run this program

 

 

 

참고 사이트 :

http://skyunoe.blog.me/20109261542

http://cafe.naver.com/javachobostudy/98463

http://cafe.naver.com/withjina80/190

http://blog.suromind.com/4

http://bubibuba.tistory.com/24

http://blog.naver.com/hyy1360?Redirect=Log&logNo=40111053868

http://blog.naver.com/addibuddi?Redirect=Log&logNo=15067998

http://oya150.tistory.com/5

 

 

 

 

반응형