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

はじめに

 * commons-daemonコンポーネントを利用して、
   Tomcatをデーモン(自動プロセス。Windowsのサービスみたいなもん)化を行う

環境

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

前提

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

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

[2] gcc / autoconf / make のインストール

 * ターミナルを起動し、以下のコマンドを入力する
コマンド
sudo zypper install gcc
sudo zypper install autoconf
sudo zypper install make
参考文献
http://www.limy.org/program/linux/suse/step1.html

手順

[1] デーモン化ツール commons-daemon のビルド

[1-1] ターミナルを起動し、以下のコマンドを入力する
コマンド
# commons-daemon-native.tar.gz があるところまで移動
cd /usr/tomcat/bin

# 解凍
tar xvzf commons-daemon-native.tar.gz

# Unix向けのディレクトリに移動
cd /usr/tomcat/bin/commons-daemon-1.0.15-native-src/unix/

# ビルド
./configure
make

# jsvc のBin配下に置く
cp jsvc /usr/tomcat/bin/

[2] 起動スクリプトの作成

[2-1] 以下を参考にTomcatデーモン起動のための起動スクリプトを作る
ファイル名:tomcat (保存先:/etc/init.d)
~~~~~
#!/bin/sh
 
# Provides:          tomcat
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop Apache Tomcat
# Description:       Enable Apache Tomcat service provided by daemon.
 
ECHO=/bin/echo
TEST=/usr/bin/test
TOMCAT_USER=root
TOMCAT_HOME=/usr/tomcat
TOMCAT_START_SCRIPT=$TOMCAT_HOME/bin/startup.sh
TOMCAT_STOP_SCRIPT=$TOMCAT_HOME/bin/shutdown.sh
 
$TEST -x $TOMCAT_START_SCRIPT || exit 0
$TEST -x $TOMCAT_STOP_SCRIPT || exit 0
 
start() {
    $ECHO -n "Starting Tomcat"
    su - $TOMCAT_USER -c "$TOMCAT_START_SCRIPT &"
    $ECHO "."
}
 
stop() {
    $ECHO -n "Stopping Tomcat"
    su - $TOMCAT_USER -c "$TOMCAT_STOP_SCRIPT 60 -force &"
    while [ "$(ps -fu $TOMCAT_USER | grep java | grep tomcat | wc -l)" -gt "0" ]; do
        sleep 5; $ECHO -n "."
    done
    $ECHO "."
}
 
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 30
        start
        ;;
    *)
        $ECHO "Usage: tomcat {start|stop|restart}"
        exit 1
esac
exit 0
~~~~~

 [2-2] ターミナルを起動し、以下のコマンドを入力する
コマンド
# 実行権限を付ける
chmod +x /etc/init.d/tomcat

# 自動起動の設定
/sbin/chkconfig --add tomcat

# 起動
/etc/init.d/tomcat start

[3] 確認

[3-1] ブラウザで以下をアクセスし、Tomcatの画面が出ればOK
[http://localhost:8080/]
[3-2] tomcatのプロセスを調べる
ps aux|grep tomcat

[4] デーモンの停止

[4-1] ターミナルを起動し、以下のコマンドを入力する
コマンド
/etc/init.d/tomcat stop

トラブル

./configure を行うと「no acceptable c compiler found in $path」というエラーが出る

原因
 * コンパイラgcc がインストールされていないため
対策
 * 上記「gcc のインストール」を参照のこと
参考文献
http://d.hatena.ne.jp/suzukit86/20120822/1345627942


関連記事

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

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

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

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

Linux(仮想環境) で、JDK / Tomcat / Eclipse の環境を構築する

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

Linuxの起動について

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