前提条件:JDK8はインストール済み
EC2 RedHat7.6
T2.micro
Tomcatをデーモン起動で使用する場合、gccが必要となるのでインストール
# gccパッケージのインストール
$ sudo yum install -y gcc
# 最新版をwgetで取得
$ wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz
# 解凍して/opt配下に移動
$ sudo tar zxvf apache-tomcat-9.0.13.tar.gz -C /opt/
# ディレクトリに移動してコンパイル実行
$ cd /opt/apache-tomcat-9.0.13
$ sudo tar zxvf ./bin/commons-daemon-native.tar.gz
$ cd commons-daemon-1.1.0-native-src/unix/
$ ./configure --with-java=/usr/java/latest
$ make
$ sudo cp -piv jsvc /opt/apache-tomcat-9.0.13/bin/
$ cd /opt/apache-tomcat-9.0.13/
# 確認
$ sudo ls -l ./bin/jsvc
-rwxrwxr-x. 1 ec2-user ec2-user 174056 Dec 11 12:08 ./bin/jsvc
$ sudo groupadd -g 10003 tomcat
$ sudo useradd -u 10003 -g 10003 tomcat
$ cd /opt
$ sudo chown -R tomcat:tomcat apache-tomcat-9.0.13
# 所有者がTomcatになっていることを確認
$ ls -l /opt/apache-tomcat-9.0.13/
このファイルはデーモンの起動・停止に使用するファイル(何故か存在しないので自分で作成)
$ sudo vi /etc/systemd/system/tomcat.service
#/etc/systemd/system/tomcat.serviceの中身
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/opt/apache-tomcat-9.0.13/bin/daemon.sh start
ExecStop=/opt/apache-tomcat-9.0.13/bin/daemon.sh stop
SuccessExitStatus=143
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
$ sudo vi /etc/sysconfig/tomcat
# /etc/sysconfig/tomcat
# Where your java installation lives
JAVA_HOME="/usr/java/latest"
# Where your tomcat installation lives
CATALINA_BASE="/opt/apache-tomcat-9.0.13"
CATALINA_HOME="/opt/apache-tomcat-9.0.13"
#JASPER_HOME="/usr/share/tomcat"
#CATALINA_TMPDIR="/var/cache/tomcat/temp"
# You can pass some parameters to java here if you wish to
#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"
# Use JAVA_OPTS to set java.library.path for libtcnative.so
#JAVA_OPTS="-Djava.library.path=/usr/lib"
# What user should run tomcat
TOMCAT_USER="tomcat"
# You can change your tomcat locale here
#LANG="en_US"
# Run tomcat under the Java Security Manager
#SECURITY_MANAGER="false"
# Time to wait in seconds, before killing process
#SHUTDOWN_WAIT="30"
# Whether to annoy the user with "attempting to shut down" messages or not
#SHUTDOWN_VERBOSE="false"
# Connector port is 8080 for this tomcat instance
#CONNECTOR_PORT="8080"
# If you wish to further customize your tomcat environment,
# put your own definitions here
# (i.e. LD_LIBRARY_PATH for some jdbc drivers)
$ sudo systemctl start tomcat
# ステータスの確認 running なら成功
$ sudo systemctl status tomcat
$ sudo systemctl stop tomcat
# ステータスの確認 dead なら成功
$ sudo systemctl status tomcat
$ sudo systemctl enable tomcat
# Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; と表示されることを確認
$ sudo systemctl status tomcat