tomcat起動スクリプトを自作する
tomcat起動法
CentOSでtomcatを起動すると、以下の場所に起動シェルスクリプトが生成される。
(環境によって違うかも)
/usr/local/tomcat/bin/startup.sh
これを実行すればtomcatが起動されるが、面倒なのでservice tomcat startで起動できるようにする。
起動スクリプトファイルの作成
まずはファイルの作成。
vi /etc/rc.d/init.d/tomcat
ファイルに以下の内容を作成。
#!/bin/bash # Startup script for the Tomcat Servlet Container # # chkconfig: 2345 35 65 export LANG=ja_JP.UTF-8 TOMCAT_HOME=/usr/local/tomcat 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} 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 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
TOMCAT_HOMEとLOCKFILEの場所は環境によって変えること。 あとは起動ファイルに権限を付与し、chkconfigをonにすればサーバー起動時に自動的にtomcatが起動される。
sudo chmod 755 /etc/rc.d/init.d/tomcat sudo chkconfig tomcat on
使用方法は以下の通り
sudo service tomcat start sudo service tomcat stop sudo service tomcat restart sudo service tomcat status