3.3.2 Tomcatをサービスとして登録

次にsystemctlコマンドで起動できるように、サービスとして登録を行います。まず始めにsystemdのユニットファイルを作成する必要があります。

1. 自身のPC上でメモ帳などのテキストエディタに下記を貼り付けます。バージョン番号はインストールしているものに合わせて修正してください。その後、「tomcat.service」というファイル名で保存します(※1)。

[Unit]

Description=Apache Tomcat 9

After=network.target

[Service]

User=tomcat

Group=tomcat

Type=oneshot

RemainAfterExit=yes

ExecStart=/opt/apache-tomcat-9.0.40/bin/startup.sh

ExecStop=/opt/apache-tomcat-9.0.40/bin/shutdown.sh

ExecReStart=/opt/apache-tomcat-9.0.40/bin/shutdown.sh;/opt/apache-tomcat-9.0.40/bin/startup.sh

[Install]

WantedBy=multi-user.target

(※1)本演習では、自身のPCからEC2インスタンスに設定ファイルをアップロードする手順で説明を行います。EC2インスタンスにログインした状態からviでファイルを作成しても構いません。その場合はホームディレクトリに「tomcat.service」の名前で保存し、手順4から続けてください。

ポイント

・systemdはLinuxシステムとサービスを管理するプログラムです。ユニットファイルと呼ばれるファイルを作成することで、サービスを登録することができます。各設定項目の概要は次のとおりです。

Description:サービスの詳細

After:ここに記載したサービスの起動後に、本サービスを起動します

User:サービスの起動ユーザー

Group:サービスの起動グループ

Type:サービスの起動完了を判定する方法を指定。

RemainAfterExit:サービス起動完了後もactiveを維持する設定

ExecStart:開始時に実行するコマンド

ExecStop:終了時に実行するコマンド

ExecReStart:再起動時に実行するコマンド

WantedBy:サービス起動に必要なランレベル

 

2. EC2インスタンスから一度ログアウトし、scpコマンドを使って、EC2インスタンスにファイルをアップロードします。scpコマンドの基本書式は次のとおりです。

scp -i (鍵ファイル名) (コピー元パス) ec2-user@(パブリックIPアドレス):(コピー先パス)

コマンドは自身の環境に合わせて適宜利用してください。下記は自身のPC(Windows環境)のカレントフォルダ(C:\Users\nus_pc)にあるtomcat.serviceファイルを、EC2インスタンスのホームディレクトリに送信する例です。赤囲みが入力したコマンドです。

ポイント

scpコマンドはSSH接続でファイルを転送するコマンドです。そのため、-iオプションで鍵ファイルを指定する必要があります。

・コピー先パスの「~」はホームディレクトリを表します。

3. 再度EC2インスタンスにログインし、ホームディレクトリにコピーされていることをlsコマンドで確認します。

4. tomcat.serviceファイルを「/etc/systemd/system」ディレクトリに移動します。下記コマンドを実行します。

$ sudo mv tomcat.service /etc/systemd/system

 

5. 下記コマンドでTomcatを自動起動するサービスとして登録します。

$ sudo systemctl enable tomcat.service

下の画面が表示されます。

6. Tomcatをsystemctlコマンドで起動してみましょう。下記コマンドを実行します。

$ sudo systemctl start tomcat

 

7. 下記コマンドを実行し、起動していることを確認します。

$ sudo systemctl status tomcat

起動している場合は、下の画面のように表示されます。