Springbootの学習はついに終了しましたが、それでも質問が残ります。つまり、プログラムをLinuxサーバーにどのように展開する必要がありますか?コマンドでプログラムを開始した後にSSHが切断された場合、プログラムはシャットダウンされますか?最初の問題は解決が簡単です。 JDKが正しくインストールされていることを確認するだけで、大きな問題はありません。トリッキーな問題は後者です。問題を解決するための鍵は、プログラムがデーモンプロセス(背景)で実行されることを確認することです。今回は、Linuxの下でプログラムを正しく展開する方法を共有します
この問題を解決するために、インターネット上の情報を確認して、次の3つのソリューションを見つけました
システムサービスへのパッケージジャー(お勧めしません)
この方法の欠点も非常に明白です。つまり、サービスは開始されない傾向があります。これは、異なるLinux分布には同程度に多かれ少なかれ違いがあるためです。
2 nohupコマンドを使用してキル-9 xxxと協力します
この方法は受け入れやすく、妥協的ですが、プログラムを停止し、コマンドを使用してプロセスを見つけてからKill -9を使用する方が面倒です。
3画面、tmuxなどを使用します(推奨)
この方法を包括的に考慮すると、統一されたインターフェイスと対応する関数を提供して複数のセッションを管理するため、より科学的です。欠点は、少しの学習コストが必要であることです。
一般的に使用されるtmuxコマンド:
$ tmux new -s session -name新しいセッションを作成します
$ tmux a -tセッション名指定セッションへのアクセス
$ TMUX DETACH /$ CTRL-B D現在のセッションを切断します
$ tmux kill-session -t session-nameセッションを閉じます
$ tmux lsはすべてのセッションを表示します
一般的な画面コマンド:
$ screen -s window -name新しいセッションを作成します
$ screen -Rセッション番号または名前指定されたセッション/再接続セッションにアクセスする
$ screen -lsすべてのセッションを表示します
Ctrl+AB現在のセッションを分離します
Ctrl+Ak
以下はそれらの違いです。 TMUXはより高度ですが、選択する方法はすべての人の使用習慣によって異なります
TMUXは画面に非常に似ていますが、画面よりも優れています。良いことがどこにあるかを尋ねると、簡単な答えは、画面の機能は同じですが、TMUXはより良く設計されているということです。画面は利用できますが、安定していません。
TMUXが画面を超えている場所がいくつかあります。
Springbootは、Mavenを使用してパッケージ化する方が便利です。パッケージング時にpom.xmlの構成を確認して、次の構成があることを確認してください。
<build> <プラグイン><プラグイン><groupId> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </artifactid> <configuration> <fork:この構成なしでは、devtoolsは機能しません。 <Executable> true </executable> </configuration> </plugin> </glugins> lt;/build>
PackagingにはMavenインストールを使用してください。パッケージが対応するJARを正常に見つけて名前を変更した場合は、承認のためにLinuxサーバーにアップロードします。
このようにして、コマンドラインがSSHから閉じたり切断されたりしても、アプリケーションが開始されますが、プログラムの通常の操作には影響しません。
切断します
セッションが終了した後、以下に示すようにプログラムはシャットダウンします
画面の使用はTMUXに似ています。ここで練習されているので、プログラムを展開してバックグラウンドで実行します。画面とTMUXを選択する効果は似ています。
PS:Linuxでのスプリングブートの展開の説明を次に示します
最初に、Maven Projectをクリーンにしてから、MavenはプロジェクトのJARパッケージにインストールしてから、Linuxで以前のバージョンのプロセスを削除します。
コマンドPS -EF |を確認しますGrep Java
キルプロセスキル-9プロセス数
スプリングブートプロジェクトを直接実行しますnohup java -jar sinocube.jar&nohupを使用して終了します
Nohupはログファイルの出力に戻ります。ログファイルはファイル名をカスタマイズできます。デフォルトはnohup.nohup.outです
cat nohup.outビューログnohup.outはファイル名がtailf nohup.outログをリアルタイムで表示します