目次
3. Tomcat がサービスを登録し、起動時に開始するように設定します。
Debian システムに Tomcat をインストールし、サービスとして登録し、スタートアップをセットアップする手順。Tomcat は、Java Web アプリケーションの実行に使用できるオープン ソースの Java サーブレット コンテナです。この記事のガイダンスに従って、Debian システムに Tomcat をすばやくインストールし、システムの起動時に Tomcat が自動的に開始されるようにすることができます。
ビルド環境
Tomcat: apache-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 のバージョン番号が表示されていればインストールされています. 表示されていなければインストールされていません. インストールされていない場合は, を参照してください.インストールするには次のアドレスを使用します。
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 サービスのステータスを確認する |