Linux で Spring Boot プロジェクトを正常に開始および停止する

Linux で Spring Boot プロジェクトを正常に開始および停止する

この記事では、Linux システムで Spring Boot プロジェクトを正常に開始および停止する方法を紹介します。nohupscreenおよびメソッドを使用しますsystemd各方法には利点があり、どの方法を選択するかは、特定のニーズと使用シナリオによって異なります。

1. nohup を使用して Spring Boot プロジェクトをバックグラウンドで実行します

まず、Spring Boot プロジェクトを JAR ファイルにパッケージ化します。使用しているビルド ツールに応じて、次のコマンドを実行します。

Maven プロジェクト:

mvn clean package

グラドルプロジェクト:

gradle clean build

次に、 nohup コマンドを使用してプロジェクトを開始し、出力をログ ファイルにリダイレクトします。

nohup java -jar /path/to/your-spring-boot-app.jar > /path/to/your-log-file.log 2>&1 &

/path/to/your-spring-boot-app.jarは、Spring Boot プロジェクトによって生成された JAR ファイルへのパスであり、/path/to/your-log-file.logログ ファイルを保存する場所のパスです。

これで、Spring Boot プロジェクトはバックグラウンド プロセスとして実行され、ターミナルを閉じても影響を受けなくなります。

優雅に立ち止まる

Spring Boot プロジェクトのプロセス ID を確認するには、次のコマンドを使用します。

ps -ef | grep your-spring-boot-app.jar

プロセス ID (通常は 2 番目の列) を見つけます。

次のコマンドで SIGTERM シグナル (シグナル 15) を送信し、Spring Boot プロジェクトを正常に停止します。

kill -15 <process-id>

これは、<process-id>最初のステップで見つけたプロセス ID です。

SIGTERM シグナルを送信すると、Spring Boot プロジェクトでデータベース接続の終了、リソースの解放などのクリーンアップ操作を実行できるようになります。これにより、Spring Boot プロジェクトが正常に停止します。

2. screen を使用して Spring Boot プロジェクトをバックグラウンドで実行する

screen は、複数のプロセスを切り替えるための端末マルチプレクサです。まず、システムにスクリーンがインストールされていることを確認してください。そうでない場合は、次のコマンドを使用してインストールできます。

Debian ベースのシステム (Ubuntu など) の場合:

sudo apt-get install screen

RHEL ベースのシステム (CentOS など) の場合:

sudo yum install screen

インストールしたら、画面を使用して新しいセッションを作成します。

screen -S your-session-name

新しく作成したセッションで、Spring Boot プロジェクトを開始します。次に、Ctrl+A を押してから D を押して、現在の端末からセッションを切断します。こうすることでターミナルを閉じることができ、Spring Boot プロジェクトはバックグラウンドで引き続き実行されます。

以前のセッションに再接続したい場合は、次のコマンドを使用できます。

screen -r your-session-name

3. systemd を使用して Spring Boot プロジェクトをバックグラウンドで実行します

systemd最新の Linux システムのデフォルトの init システムです。サービスを作成するとsystemd、Spring Boot プロジェクトをバックグラウンド プロセスとして実行し、簡単に管理できるようになります。

まず、新しいsystemd構成ファイル (例: )を作成し/etc/systemd/system/your-spring-boot-app.service、次のテンプレートを使用してコンテンツを入力します。

[Unit]
Description=Your Spring Boot Application
After=syslog.target network.target

[Service]
User=your-user
ExecStart=/usr/bin/java -jar /path/to/your-spring-boot-app.jar
SuccessExitStatus=143
Restart=always

[Install]
WantedBy=multi-user.target

置換およびサービスの説明に注意してyour-userください/path/to/your-spring-boot-app.jar

次に、次のコマンドを実行して、systemd新しいサービスを認識させます。

sudo systemctl daemon-reload

次に、Spring Boot プロジェクトを開始します。

sudo systemctl start your-spring-boot-app.service

自動起動をオンにするには、次を実行します。

sudo systemctl enable your-spring-boot-app.service

Spring Boot プロジェクトのステータスとログを表示するには、次を実行します。

sudo systemctl status your-spring-boot-app.service
sudo journalctl -u your-spring-boot-app.service -f

優雅に立ち止まる

次のコマンドを使用して、Spring Boot プロジェクトを正常に停止します。

sudo systemctl stop your-spring-boot-app.service

ここで、your-spring-boot-app.serviceは Spring Boot プロジェクト用に作成したサービス ファイルの名前ですsystemd

systemctl stopこのコマンドを使用すると、 systemdSIGTERM シグナルが Spring Boot プロジェクトに送信されます。これにより、Spring Boot プロジェクトは、データベース接続の終了、リソースの解放などのクリーンアップ操作を実行できるようになります。これにより、Spring Boot プロジェクトが正常に停止します。

Spring Boot プロジェクトのステータスを確認するには、次を実行します。

sudo systemctl status your-spring-boot-app.service

これにより、サービスが停止しているかどうかを含む、サービスの現在のステータスが表示されます。

要約する

nohupこの記事では、を使用しscreensystemdバックグラウンドで実行し、Linux システム上で Spring Boot プロジェクトを正常に停止する方法について説明します。各方法には利点があり、どの方法を選択するかは、特定のニーズと使用シナリオによって異なります。この記事が実際のプロジェクトで Spring Boot プロジェクトをデプロイおよび管理するのに役立つことを願っています。ご質問がございましたら、コメントをお待ちしております。

おすすめ

転載: blog.csdn.net/kaka_buka/article/details/130509952