Linux 編集の開始、停止、再起動の Springboot jar パッケージ スクリプトの例

Linux 編集の開始、停止、再起動の Springboot jar パッケージ スクリプトの例

序文

springboot設定ファイルでは、設定ファイルの名前には独自の意味と用途があります。

  • dev 開発環境
  • prod 本番環境(デフォルト)
  • テストテスト環境

指定されたプロファイルをロードします --spring.profiles.active=prod

Springboot は次の方法で jar パッケージを読み込みます。

// コンソールで直接開始します。欠点は、コンソールを閉じるとプロジェクトが閉じられることです。
java -jar bootdo.jar
// このメソッドはバックグラウンドで実行できますが、シェルが起動されるとハングします java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 &
// nohup が追加された場合、シェルを終了しても影響を受けません。
nohup java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 &

説明する

nohup は永続的に実行されることを意味します。 & はバックグラウンド操作を示します

> はリダイレクト先を表します

1 は stdout 標準出力を意味します。システムのデフォルト値は 1 なので、 ">/dev/null" "1>/dev/null"と同等です。

2はstderr標準エラーを意味します

nohup ./mqnamesrv >/home/cxb/mqnamesrv.out 2>&1 &つまり、標準出力は mqnamesrv.out に送信されます。次に、標準エラー出力は標準出力と同じファイルにリダイレクトされます。

以下の方法でサーバーが正常に起動した後、再起動が必要な場合は、 ps -ef | grep bootdoでプロセス ID を照会し、 kill -s 9 ${pid}でサーバーを強制終了して再起動する必要がありますが、これは非常に面倒です。

nohup java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 & 

一度や二度なら大丈夫ですが、何度も起こると、ちょっと大変になります。

このように、シェルスクリプトを記述して、開始(start)、停止(stop)、再開(restart)操作を1つのステップで実行することができ、便利で効率的です。

カスタム ディレクトリに wss.sh スクリプトを作成し、次のように内容を編集します。

#!/bin/bash
#これは独自の実行可能プログラムに置き換えることができます。他のコードは変更する必要はありません APP_NAME=websocketserver-0.0.1-SNAPSHOT.jar
 
#使用方法の説明。パラメータ入力を促すために使用します。usage() {
 echo "使用方法: sh スクリプト名.sh [start|stop|restart|status]"
 出口1
}
 
# プログラムが実行中かどうかを確認する is_exist(){
 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
 # 存在しない場合は 1 を返し、存在する場合は 0 を返します 
 [ -z "${pid}" ]の場合;
 戻り値 1
 それ以外
 0を返す
 フィ
}
 
#Startメソッドstart(){
 存在する
 [ $? -eq "0" ]の場合;
 echo "${APP_NAME} はすでに実行されています。pid=${pid} 。"
 それ以外
 nohup java -jar /mnt/ssd1/project/websocket/$APP_NAME > /mnt/ssd1/project/websocket/websocketserverlog.file 2>&1 &
 echo "${APP_NAME} の起動に成功しました"
 フィ
}
 
#Stopメソッドstop(){
 存在する
 [ $? -eq "0" ]の場合;
 -9 $pid を強制終了する
 それ以外
 echo "${APP_NAME} は実行されていません"
 フィ 
}
 
# 実行ステータスを出力する status(){
 存在する
 [ $? -eq "0" ]の場合;
 echo "${APP_NAME} が実行中です。PID は ${pid} です"
 それ以外
 echo "${APP_NAME} は実行されていません。"
 フィ
}
 
#再起動restart(){
 停止
 始める
}
 
#入力パラメータに応じて、実行するメソッドを選択します。入力がない場合、メソッドが実行されます。ユースケース「$1」の説明
 "始める")
 始める
 ;;
 "停止")
 停止
 ;;
 "状態")
 状態
 ;;
 "再起動")
 再起動
 ;;
 *)
 使用法
 ;;
エサック

赤でマークされた行で起動コマンドを設定します。

その後は、 wss.sh start | stop | restartを使用して起動、停止、再起動できます。

追加

sh xxx.sh と ./xxx.sh の違い

sh xxx.shには実行権限は必要ありません

./xxx.sh には実行権限が必要です。これはchmod +x xxx.shで付与できます。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • springboot jarパッケージを使用するとサービスとして起動できます
  • springboot jarパッケージを使用するとサービスとして起動できます
  • SpringBoot で jar および war パッケージをビルド、パッケージ化、起動する方法についての詳細なチュートリアル
  • SpringBoot プロジェクトの実行中の jar パッケージの起動ステップのプロセス分析
  • SpringBoot jar パッケージを起動する方法

<<:  Vueは不規則なスクリーンショットを実装する

>>:  Mysql を 5.7 にアップグレードした後のグループ クエリの問題を解決する

推薦する

rpm を使用して指定されたバージョンの docker (1.12.6) をインストールする詳細な手順

1. 理由システムが Centos7.3 の場合、yum install docker を使用して直...

VUE v-for の :key の詳細な説明

v-for タグにキーが追加されていない場合。 <!DOCTYPE html> <...

Linux gccコマンドの具体的な使い方

01. コマンドの概要gcc コマンドは、GNU がリリースした C/C++ ベースのコンパイラを使...

HTML コードの書き方に関する提案のまとめ

リソースファイルのプロトコルを省略する画像、メディアファイル、スタイル、スクリプトの URL では、...

MySql 認証に基づく vsftpd 仮想ユーザー

目次1. MySQLのインストール1.2 テーブル、データベース、ユーザーを作成する1.3 リモート...

MySQL8の再帰メソッドの使い方を教える

以前、カスタム関数を使用して MySQL でツリー構造を再帰的にクエリする方法についての記事を書きま...

Html+CSS 描画三角形アイコン

まずはレンダリングを見てみましょう: XML/HTML コードコンテンツをクリップボードにコピー&l...

この記事ではCSSの組み合わせセレクターの使い方を説明します

CSS 組み合わせセレクターには、単純なセレクターのさまざまな組み合わせが含まれます。 CSS3 に...

JavaScript 高度なカスタム例外

目次1. コンセプト1.1 エラーと例外とは何ですか? 1.2 異常の分類2. 例外処理2.1try...

キャンバスはスクラッチカード効果を描画します

この記事では、キャンバスでスクラッチカード効果を描画するための具体的なコードを参考までに共有します。...

MySQL で誕生日から年齢を計算する複数の方法

以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...

innerHTML アプリケーション

ブランクのブログ: http://www.planabc.net/ innerHTML プロパティは...