【Linux】【Tomcat】Tomcatをデーモンとして起動するには ~ /etc/init.d / Debian編~

手順 / 概要

[1] /etc/init.d/ に起動スクリプトを配置する
[2] insserv コマンドで、起動スクリプトを登録する
[3] 再起動して確認

詳細な手順は、後述の「手順 / 詳細」を参照のこと

環境

 * ホストOS     : Windows 8.1
 * ゲストOS     : Debian7
 * 仮想化ソフト : VMware(R) Workstation 10.0.2 build-1744117
 * JDK          : JDK1.8
 * Tomcat       : Tomcat8

前提条件

[1] JDK / Tomcat のインストール

http://blogs.yahoo.co.jp/dk521123/33854227.html
で、JDK / Tomcat をインストールしておくこと

手順 / 詳細

[1] /etc/init.d/ に起動スクリプトを配置する

 * /etc/init.d/skeleton にサンプルがある
ファイル名「tomcat」 / 格納先: /etc/init.d
#! /bin/sh
# Provides:          tomcat
# Required-Start:    
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Tomcat start/restart/stop
# Description:       Tomcat start/restart/stop
#                    placed in /etc/init.d.
 
CATALINA_HOME=/usr/tomcat
TOMCAT_USER=root
SHUTDOWN_WAIT=10
  
tomcat_pid() {
  echo `ps aux | grep $TOMCAT | grep -v grep | awk '{ print $2 }'`
}
  
start() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ]
     then
        echo "Tomcat is already running (pid: $pid)"
     else
        echo "Starting Tomcat"
        /bin/su $TOMCAT_USER $CATALINA_HOME/bin/startup.sh
   fi
  
   return 0
}
  
stop() {
 pid=$(tomcat_pid)
  if [ -n "$pid" ]
  then
  
  echo "Stoping Tomcat"
   /bin/su $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh
  
   echo -n "Waiting for processes to exit ["
   let kwait=$SHUTDOWN_WAIT
    count=0;
    until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
    do
      echo -n ".";
      sleep 1
      let count=$count+1;
    done
    echo "Done]"
  
    if [ $count -gt $kwait ]
    then
      echo "Killing processes ($pid) which didn't stop after $SHUTDOWN_WAIT seconds"
      kill -9 $pid
    fi
  else
    echo "Tomcat is not running"
  fi
  
  return 0
}
  
status() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ]
  then
    echo "Tomcat is running with pid: $pid"
  else
    echo "Tomcat is not running"
  fi
}
  
case "$1" in
 start)
        start
        ;;
 stop)
        stop
        ;;
 restart)
       stop
       start
       ;;
 status)
       status
       ;;
*)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac
exit 0

[2] insserv コマンドで、起動スクリプトを登録する

chmod 755 /etc/init.d/tomcat
sudo insserv tomcat

inserv -s
で一覧表示して、登録できたかを確認する

[3] 再起動して確認

restart
してから、ブラウザで以下のURLにアクセスする
[http://localhost:8080/]

補足 : inservコマンドについて

 * 以下の関連記事を参照のこと
https://blogs.yahoo.co.jp/dk521123/34564457.html


関連記事

Linuxの起動について ~ プロセス / デーモン ~

https://blogs.yahoo.co.jp/dk521123/34564457.html

CentOSでのサービス管理 ~ service・chkconfig / systemd ~

https://blogs.yahoo.co.jp/dk521123/36255225.html

Tomcatをデーモン(daemon)として起動するには ~openSUSE編~

http://blogs.yahoo.co.jp/dk521123/33751398.html

Linuxの起動について

http://blogs.yahoo.co.jp/dk521123/34564457.html

【トラブル】【Linux】insservコマンド実行時のエラー対処方法

http://blogs.yahoo.co.jp/dk521123/34754924.html