トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Linux:tomcatの起動スクリプト作成+サービス登録 の変更点

Top / Linux:tomcatの起動スクリプト作成+サービス登録

*Linux:tomcatの起動スクリプト作成+サービス登録 [#fad521f0]

かまけてやっていなかったけど、ついに重い腰を上げてやりました。

って程の事じゃないけど。

色々なサイトを参考に、我流で書いてます。

前提は以下の通り。

-tomcat配置ディレクトリは/opt/tomcat7

***起動スクリプト [#n14f3795]
-/etc/init.d/tomcat

 #!/bin/bash
 # Startup script for the Tomcat Servlet Container
 #
 # chkconfig: 2345 35 65
 
 export LANG=ja_JP.UTF-8
 
 TOMCAT_HOME=/opt/tomcat7
 LOCKFILE=/var/lock/subsys/tomcat
 
 # source function library
 . /etc/rc.d/init.d/functions
 
 start(){
     if [ ! -f ${LOCKFILE} ]; then
         echo "Starting tomcat"
         #sudo -u tomcat ${TOMCAT_HOME}/bin/startup.sh
         ${TOMCAT_HOME}/bin/startup.sh
         sleep 1
         PID=`ps -ef | grep catalina.home=${TOMCAT_HOME} | grep -v grep | awk '{print $2}'`
         echo ${PID} > ${LOCKFILE}
 
 
         tail -f ${TOMCAT_HOME}/logs/catalina.out | while read LINE
         do
           PID=`ps -ef | grep -v grep | egrep -e '.*tail.*catalina.out$' | awk '{print $2}'`
           if [ 1 -ne `echo $LINE | egrep -e '^.*: Server startup in [0-9]* ms$' | wc -l` ];
             then
             echo -n "."
           else
             echo 
             echo $LINE 
             kill ${PID}
           fi
         done
     else
         echo "tomcat is already running"
     fi
 }
 
 stop(){
     if [ -f ${LOCKFILE} ]; then
         echo "Shutting down tomcat"
         #sudo -u tomcat ${TOMCAT_HOME}/bin/shutdown.sh
         ${TOMCAT_HOME}/bin/shutdown.sh
         while [ 1 -eq `ps -ef | grep ${TOMCAT_HOME} | grep -v grep | wc -l` ]
         do
           echo -n "."
           sleep 1
         done
         echo 
         echo "Shutted down tomcat"
         rm -f ${LOCKFILE}
     else
         echo "tomcat is not running"
     fi
 }
 
 case "$1" in
     start)
         start
         ;;
     stop)
         stop
         ;;
     restart)
         stop
         start
         ;;
     status)
         #${TOMCAT_HOME}/bin/catalina.sh version
         if [ -f ${LOCKFILE} ]
         then
           echo "tomcat(pid:"`cat ${LOCKFILE}`") is running."
         else
           echo "tomcat is not running."
         fi  
         ;;
     *)
         echo "Usage: $0 {start|stop|restart|status}"
 esac
 
 exit 0


***サービス登録 [#xdc2e509]

上のスクリプトを/etc/init.dにコピーしたのち、以下のコマンドで登録

 chkconfig --add tomcat

登録できているか確認

 # chkconfig --list tomcat
 tomcat         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

はい、登録できましたー

これで

 service tomcat XXX

で操作できます。


***参考サイト [#uf5c6048]

このサイトが非常によく参考になりました。
-http://homepage1.nifty.com/y-osumi/works/code/tomcat7/