3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Tomcat8.5をインストールしjsvcでサービス起動 for CentOS7.2

Last updated at Posted at 2016-09-22

##はじめに
CentOS7で提供されるrpmのTomcatは、systemdになったこともあり、通常のstartup.shやshutdown.shがコールされた起動スクリプトになっているようです。
Tomcatには、tomca-nativeというサービス化して起動するjsvcモジュールが提供されていますので、Apache Tomcatが提供する純正のTomcatバイナリとjsvcモジュールをコンパイルして、jsvc経由で起動する方法をメモしておきます。
個人的な見解ですが、jsvcを利用した方法のほうがTomcatを起動すると、Tomcatが高負荷になり、OutOfMemoryなどの障害が発生した場合に、プロセスがお化けになりにくいように思います。(通常のJavaプロセスで起動して、高負荷トラブルが発生すると、javaプロセスがお化けになる経験を決行しました)
2016年9月現在、JDKは、JDK8-101,Tomcatは、8.5.5が最新版です。
今回も上記のバージョンで作業を行います。

実践環境バージョン情報

ソフトウェア バージョン
JDK 1.8.0_101
Tomcat 8.5.5
OS CentOS 7.2

##JavaSDKを用意する
こちらは、ライセンスの同意の関係でWGETでダウンロードするのは難しいです。
あらかじめ管理端末でダウンロードしたものを転送するか、サーバーのブラウザーでダウンロードを行ってください。

###JavaSDKのダウンロード
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Accept License Agreementをクリックした後、「Linux x64」のJDKをダウンロードします。
image

###解凍し、配置する

tar xvzf jdk-8u101-linux-x64.tar.gz
cp -rf jdk1.8.0_101 /usr/local

###環境変数を設定する

vi ~/.bashrc

一番下に以下を記載します

export JAVA_HOME=/usr/local/jdk1.8.0_101
export PATH=$JAVA_HOME/bin:$PATH

環境変数を反映します

source ~/.bashrc

正しくJavaコマンドが導入バージョンになっているかを確認する

java -version

以下が結果で出てくればOK

java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

##Tomcatを配置する

###ダウンロードし配置する

cd /usr/local/src
wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
tar xvzf apache-tomcat-8.5.5.tar.gz
cp -rf apache-tomcat-8.5.5 /usr/local

###ユーザーを追加しオーナーを変更

useradd tomcat
chown tomcat:tomcat -R /usr/local/apache-tomcat-8.5.5

###daemon-nativeをコンパイルし配置する

mkdir -p /usr/local/src/daemon-native
cd /usr/local/apache-tomcat-8.5.5/bin
cp commons-daemon-native.tar.gz /usr/local/src/daemon-native
cd /usr/local/src/daemon-native

#解凍
tar xvzf commons-daemon-native.tar.gz
cd commons-daemon-1.0.15-native-src
cd unix

#コンパイル
#
#64BIT OSの場合以下の環境変数を設定する
export CFLAGS=-m64
export LDFLAGS=-m64

#Configure
./configure --with-java=$JAVA_HOME
make

#ファイルをコピー
cp jsvc /usr/local/apache-tomcat-8.5.5/bin

##起動スクリプトを配置する

vi /usr/lib/systemd/system/tomcat.service

以下を張り付けます

[Unit]
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
PIDFile=/var/run/tomcat.pid
Environment=CATALINA_PID=/var/run/tomcat.pid
Environment=JAVA_HOME=/usr/local/jdk1.8.0_101
Environment=CATALINA_HOME=/usr/local/apache-tomcat-8.5.5
Environment=CATALINA_BASE=/usr/local/apache-tomcat-8.5.5
Environment="CATALINA_OPTS=-server -Xms2048m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=2048M"

ExecStart=/usr/local/apache-tomcat-8.5.5/bin/jsvc \
            -Dcatalina.home=${CATALINA_HOME} \
            -Dcatalina.base=${CATALINA_BASE} \
            -cp ${CATALINA_HOME}/bin/commons-daemon.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
            -user tomcat \
            -java-home ${JAVA_HOME} \
            -pidfile /var/run/tomcat.pid \
            -errfile SYSLOG \
            -outfile SYSLOG \
            $CATALINA_OPTS \
            org.apache.catalina.startup.Bootstrap

ExecStop=/usr/local/apache-tomcat-8.5.5/bin/jsvc \
            -pidfile /var/run/tomcat.pid \
            -stop \
            org.apache.catalina.startup.Bootstrap

[Install]
WantedBy=multi-user.target

###Tomcatの起動と自動起動の設定

Tomcatサービス自動起動設定

systemctl enable tomcat
systemctl start tomcat

##参考

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?