Debian は Tomcat をデプロイし、サービスを登録し、起動を設定します

目次

前に書く

1. 準備

2. Linux に Tomcat をインストールする

3. Tomcat がサービスを登録し、起動時に開始するように設定します。

 3.1. rc.local を使用して起動を設定する

3.2. /etc/init.d を使用する

3.3.systemd 設定 (一般的な方法)


        Debian システムに Tomcat をインストールし、サービスとして登録し、スタートアップをセットアップする手順。Tomcat は、Java Web アプリケーションの実行に使用できるオープン ソースの Java サーブレット コンテナです。この記事のガイダンスに従って、Debian システムに Tomcat をすばやくインストールし、システムの起動時に Tomcat が自動的に開始されるようにすることができます。

ビルド環境

Tomcat: apa​​che-tomcat-8.5.91

Tomcat のインストール パス:/home/tomcat/

JDK: jdk1.8.0_202

JDKインストールパス:/home/jdk1.8.0_202/

オペレーティングシステム: debain12

1. 準備

a) tomcat linux パッケージを次のアドレスにダウンロードします: Apache Tomcat® - Apache Tomcat 8 Software Downloadsダウンロードしたバージョンは 8.0 です。ダウンロード方法は図に示すとおりです。         

b) Tomcat のインストールは Java jdk に依存するため、jdk が Linux システムにインストールされているかどうかを確認する必要があります。

  1) (Xshell) を使用して Linux システムに接続します

  2) コマンド: java -version を入力します. jdk のバージョン番号が表示されていればインストールされています. 表示されていなければインストールされていません. インストールされていない場合は, を参照してください.インストールするには次のアドレスを使用します。

Debain11 のインストールと構成 JDK

jdk オフライン インストール パッケージのダウンロード アドレス:

java-local/jdk (huaweicloud.com) のインデックス

oracle.com/java/technologies/downloads/

インストールが成功したら、図に示すように jdk を確認します。

2. Linux に Tomcat をインストールする

a) 次に、Xshell でコマンドを使用して、ホームの下にある作成者自身のフォルダーにジャンプします: tomcat

b) 次に、図に示すように、Xftp を使用して Tomcat を Tomcat フォルダーにコピーします。

​ 

c) 図に示すように、アップロードされた Tomcat8.0 を解凍し、解凍後に名前を tomcat に変更します。

#可以直接解压并命名到home目录
cd /home/tomcat
tar -zxv -f apache-tomcat-8.5.91.tar.gz  

d) Tomcatを起動する 

一般的な起動方法は 3 つあります。

方法 1:現在のセッションを開始する

/home/tomcat/bin/startup.sh    #启动tomcat命令

図のようなメッセージが表示されれば起動成功です。http://127.0.0.1:8080にアクセスし 、Tomcat のホームページが表示されれば起動成功です。

ps -ef | grep 'tomcat'

開始したばかりの Tomcat サービスを確認してください。


プロセス ID は 9814 です。次のコマンドを使用してシャットダウンできます。

kill 9814

方法 2: ログを使用して現在のセッションを開始する

./catalina.sh run

最初の方法とは異なり、2 番目の方法は開始後にログを表示します。これは、現在の Linux 接続セッションがコンソールになったのと同等であり、他の Linux コマンドを入力することはできません。接続が閉じられると、今回開始された Tomcat サービスも閉じられます。もちろん、起動に成功した後、ctrl + c を使用して、このリンク セッションで Tomcat の起動を直接閉じることもできます。

方法 3: バックグラウンドを永続的に開始する
最も簡単な書き方:

nohup ./startup.sh &

Tomcat の起動時にログ パスを手動で指定します。

nohup ./startup.sh > log.file 2>&1 & 

2 つの違いを理解するには、nohup の具体的な使用法を確認する必要があります。

>log.file は、コマンド出力を log.file ファイルにリダイレクトします。つまり、出力内容は画面に出力されず、log.file ファイルに出力されます。
2>&1は、標準エラーを標準出力にリダイレクトします。ここでの標準出力は、log.file ファイルにリダイレクトされています。つまり、標準エラーも log.file ファイルに出力されます。最後の & により、コマンドをバックグラウンドで実行できます。
2>1 が何を表すかを考えてください。2 と > の組み合わせはエラー リダイレクトを表し、1 は標準出力ではなくファイル 1 へのエラー リダイレクトを表します。これを 2>&1 に置き換えます。& と 1 の組み合わせは標準出力を表します。 . エラーとなり標準出力にリダイレクトされます。

e) Tomcat を停止するコマンド

/home/tomcat/bin/shutdown.sh    #停止tomcat命令

f)環境変数の設定

sudo vi /home/tomcat/bin/catalina.sh

 g)システムが jdk および tomcat 環境変数で構成されていない場合は、tomcat/bin/catalina.sh に CATALINA_HOME および CLASSPATH を追加します。

#tomcat路径
CATALINA_HOME=/home/tomcat/
CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib

g) Tomcat の JDK バージョンを指定します。

方法 1. tomcat/bin/setclasspath.sh の JAVA_HOME および JRE_HOME にポイントを追加します。

JAVA_HOME=/home/jdk1.8.0_202
JRE_HOME=/home/jdk1.8.0_202/jre

3. Tomcat がサービスを登録し、起動時に開始するように設定します。

スタートアップの設定には 3 つの方法があり、サービスとして登録するには一般的に 2 つの方法があります。

3.1. rc.local を使用して起動を設定する

/etc/rc.local ファイルの最後にステートメント /home/tomcat/bin/startup.sh を直接追加し、システムを再起動し、ps -ef|grep java を実行します。次の情報が表示される場合は、 Tomcat サービスが自動的に開始されました。

/etc/rc.local の内容は、起動時に実行されるスクリプトです。

vi /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#添加startup.sh的路径
/home/tomcat/bin/startup.sh
exit 0

この方法で構成された自動開始サービスは root で実行されます。exit 0 の上に追加された行に注目してください。

3.2. /etc/init.d を使用する

/etc/init.d ディレクトリはシステム サービス スクリプトです。

スクリプトをシステム サービスとして追加するプロセス:

1. スクリプトを /etc/init.d ディレクトリにコピーします。

2. 755 権限を追加します。

3. chkconfig --add サービス名を使用して追加します

4. chkconfig --list を使用して表示します。

5. サービス サービス名 start|stop|restart を使用してサービスを実行します。

1 ) Tomcat の下の bin ディレクトリに移動します。

cd /home/tomcat/bin

 2) catalina.sh をシステムサービススクリプトとしてコピーします。

#重命名的tomcat为以后的服务名 
cp /home/tomcat/bin/catalina.sh /etc/init.d/tomcat    

3)スクリプトを変更する

vi /etc/init.d/tomcat

4)スクリプトの前半に次の 2 行のコメントを追加します。

#chkconfig:2345 10 90
#description:Tomcat service

最初の行はサービスの構成です。最初の数字はサービスのランレベルで、2345 はこのサービスのランレベルが 2、3、4、5 ( Linuxのランレベルは 0 ~ 6) であることを示します。2 番目の数字はサービスのランレベルです。は開始優先度で、値は 0 ~ 99 です。3 番目の数字は停止優先度で、値も 0 ~ 99 です。

2行目はサービスの説明です

このコメントが正しくない場合、サービスを追加するときに「tomcat は chkconfig をサポートしていません」というエラー メッセージが表示されます。

5) スクリプトで環境変数を設定します。

同時にファイル /etc/init.d/tomcat

CATALINA_HOME=/home/tomcat/
CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib
JAVA_HOME=/home/jdk1.8.0_202

6 ) スクリプトの実行権限を追加します。

chmod 777 /etc/init.d/tomcat

7) システムサービスとして追加

chkconfig --add tomcat

8) システムサービスリストの表示

chkconfig --list

7. Tomcatの起動と停止

service tomcat start   #启动tomcat
service tomcat stop    #停止tomcat
service tomcat restart  #重启tomcat

/etc/init.d ディレクトリはシステム サービス スクリプトです。

注: サービスの開始時にメッセージが表示されます。エラーの内容と原因がまだわかりません。オンラインで確認したところ、このコマンド systemctl daemon-reload を実行し、Tomcat を再起動したところ、正常に開始されました。

3.3.systemd 設定 (一般的な方法)

        システム デーモン システム デーモン プロセス。Systemd はすべてのシステム リソースを管理できます。さまざまなリソースを総称してユニットと呼びます。ユニットは全部で12種類に分かれています。起動時にサービスが自動的に開始されるように設定したい場合は、サービス ユニットを使用する必要があります。

        Tomcat ルート ディレクトリが /home/tomcat にあると仮定し、ディレクトリ /lib/systemd/system/ に新しいファイル tomcat.service を作成します。内容は次のとおりです。

1) systemctl サービスを登録します (私は nano で編集することに慣れています)

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

 2) tomcat.service ファイルの内容は次のとおりです。

[Unit]
#Description指定当前服务的简单描述。
Description=tomcat8测试应用服务
#After表示当前服务在network.target之后启动,可以指定多个服务,以空格隔开。
After=network.target

[Service]
#ExecStart将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。
Type=forking
Environment='JAVA_HOME=/home/jdk1.8.0_202'
Environment='JRE_HOME=/home/jdk1.8.0_202/jre'
# ExecStart指定启动进程时执行的命令。
# ExecReload指定当该服务被要求重新载入配置时所执行的命令。另外,还有一个特殊的环境变量 $MAINPID 可用于表示主进程的P>
# ExecStop指定停止服务时执行的命令。
ExecStart=/home/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/home/tomcat/bin/shutdown.sh

#web服务设置私有/tmp或/var/tmp目录
PrivateTmp=true

[Install]
#“WantedBy=multi-user.target”表示当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
WantedBy=multi-user.target

3) systemd マネージャーの設定をリロードします。

systemctl daemon-reload

4) Tomcat サービスを開始します。

systemctl start tomcat
# tomcat启动的大致流程是startup.sh->catalina.sh->setclasspath.sh

5) Tomcat サービスのステータスを確認します。

systemctl status tomcat

ステータス アクティブ: アクティブ、起動が成功したことを示します

 6) 起動を設定します。エラーがない場合は、起動時に Tomcat サービスが自動的に起動するように設定できます。

systemctl enable tomcat

よく使用されるコマンドのまとめ

注文         関数
systemctl tomcat.service を停止します 故障中
sudo systemctl tomcat.serviceを無効にする  起動時の自動起動をキャンセルする
systemctl で tomcat.service を再起動します 再起動
systemctl で tomcat.service を有効にする サービスを自動的に開始するように設定する
sudo systemctlステータスtomcat Tomcat サービスのステータスを確認する

おすすめ

転載: blog.csdn.net/qq_20957669/article/details/131797375