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 にアップグレードした後のグループ クエリの問題を解決する

推薦する

Virtualbox で Ubuntu 16.04 の起動時に共有ディレクトリを自動的にマウントする最良の方法

仮想マシンを使用する人は通常、操作と使用を容易にするために仮想マシン用の共有ディレクトリを設定します...

MySQL 5.7.20 zip インストール チュートリアル

MySQL 5.7.20 zipインストール、具体的な内容は次のとおりです(1)圧縮パッケージを解凍...

Linux システム MySQL8.0.19 クイックインストールと構成チュートリアル図

目次1. 環境の紹介2. MySQL-8.0.19をインストールする3. MySQLを設定する1. ...

Linux プロセスの CPU 使用率が 700% に達し、終了できない場合の解決策

目次1. 問題の発見2. プロセスの詳細情報を表示する3. 解決策4. 大法を再開する1. 問題の発...

mysql インストーラ ウェブ コミュニティ 5.7.21.0.msi インストール グラフィック チュートリアル

この記事の例では、Androidの9グリッド画像を表示するための具体的なコードを参考までに共有してい...

CSS でのシングル div 描画テクニックの実装

純粋な HTML + CSS を使ってドラえもんの絵を描くなど、CSS 描画に関する記事をよく見かけ...

Linux で Redis のリモート接続を実装する方法

LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりで...

CentOS の MySQL に MariaDB をインストールするときに発生する方法と問題

以前にインストールしたmariadbを削除する1. rpm -qa | grep mariadb を...

セマンティック HTML 構造の利点は何ですか?

1つ: 1.セマンティック タグは単なる HTML であり、CSS にはセマンティクスはありません...

Vueプロジェクトのフロントエンドを最適化およびパッケージ化するための必須のボーナスアイテム

目次序文1. ルーティングの遅延読み込み1. ルートの遅延読み込みが必要なのはなぜですか? 2. ル...

Vueのスロットの詳細な説明

Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...

Linux で MySQL のデフォルト エンコーディングを変更する方法

開発プロセス中に、MySQL データベースを復元した後にデータベース データに文字化けが発生した場合...

JS配列インデックス検出におけるデータ型の問題の詳細な説明

WeChat アプレット プロジェクトを書いていたとき、その中に「都市選択」機能がありました。作者は...

Linux での GDB 入門チュートリアル

序文gdb は Linux で非常に便利なデバッグ ツールです。コマンドライン モードのデバッグ ツ...

開発効率を向上させる 20 の JavaScript ヒント

目次1. 配列を宣言して初期化する2. 合計、最小値、最大値を計算する3. 文字列、数値、オブジェク...