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

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

Last-modified: 2014-03-19 (水) 01:18:38 (3691d)
Top / Linux:tomcatの起動スクリプト作成+サービス登録

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

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

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

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

前提は以下の通り。

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

起動スクリプト

  • /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

サービス登録

上のスクリプトを/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

で操作できます。

参考サイト

このサイトが非常によく参考になりました。