欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell重啟SpringBoot項目腳本的示例代碼(含服務(wù)守護)

 更新時間:2023年11月24日 09:10:52   作者:小子寶丁  
本文介紹了如何使用?Bash?腳本來管理和守護運行服務(wù),將展示一個示例腳本,該腳本可以停止、啟動和守護運行一個服務(wù),并提供了相應(yīng)的解釋和用法說明,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下

引用

在實際的軟件開發(fā)和部署過程中,經(jīng)常需要使用腳本來管理和控制服務(wù)的運行。這些腳本可以方便地停止、啟動和監(jiān)控服務(wù),并在服務(wù)意外停止時自動重新啟動。在本文中,將展示一個使用 Bash 腳本來管理和守護運行服務(wù)的示例。

步驟

首先,看一下示例腳本的結(jié)構(gòu)和關(guān)鍵部分。以下是示例腳本的完整代碼:

#!/bin/bash

JAR=your_service.jar
LOG_FILE=your_service_log_file.log

SERVER_HOST=localhost
SERVER_PORT=9998

# 停止服務(wù)
function stopServer(){

    # 檢查進程是否正在運行
    pid=$(ps -ef | grep "$JAR" | grep -v grep| awk '{print $2}')
    if [ -n "$pid" ]; then
        # 殺死進程
        kill -9 $pid
        echo "服務(wù)已停止"
    else
        echo "服務(wù)未運行"
    fi
}

# 啟動服務(wù)
function startServer(){
    # 啟動服務(wù)
    nohup java -jar "$JAR" > "$LOG_FILE" 2>&1 &
    echo "服務(wù)正在啟動……"

    # 檢測服務(wù)是否啟動
    sleep 10
    while ! nc -z "$SERVER_HOST" "$SERVER_PORT"; do sleep 2; done
    echo "服務(wù)啟動成功"
    sleep 3

}


# 守護
function daemonFun(){
    # 進入循環(huán),定期檢查服務(wù)狀態(tài)
    while true; do
        # 檢查進程是否正在運行
        pid=$(ps -ef | grep "$JAR" | grep -v grep| awk '{print $2}')
        if [ -n "$pid" ]; then
            # 服務(wù)正在運行,等待一段時間后再次檢查
            echo "服務(wù)正在運行,等待一段時間后再次檢查"
            sleep 60
        else
            # 服務(wù)已停止,啟動服務(wù)
            startServer wait
            echo "服務(wù)已重新啟動"
        fi
    done
}


stopServer wait

sleep 3

startServer wait



# 啟動守護
echo "啟動守護"
daemonFun  &

以下逐步解釋腳本的不同部分。

  • 首先,定義了一些變量,例如 JAR 表示服務(wù)的 JAR 文件名,LOG_FILE 表示日志文件名,SERVER_HOST 和 SERVER_PORT 表示服務(wù)的主機和端口。

  • 接下來,定義了 stopServer 函數(shù),用于停止服務(wù)。該函數(shù)會檢查服務(wù)進程是否正在運行,如果是,則使用進程 ID 殺死該進程。

  • 然后,定義了 startServer 函數(shù),用于啟動服務(wù)。該函數(shù)會使用 nohup 命令在后臺運行服務(wù),并將輸出重定向到日志文件。然后,它會等待一段時間,檢測服務(wù)是否成功啟動。

  • 接著,定義了 daemonFun 函數(shù),用于守護運行服務(wù)。該函數(shù)會進入一個無限循環(huán),定期檢查服務(wù)的狀態(tài)。如果服務(wù)進程不存在,則重新啟動服務(wù)。

在主程序中,首先調(diào)用 stopServer 函數(shù)停止可能正在運行的服務(wù),并等待一段時間。接下來,調(diào)用 startServer 函數(shù)啟動服務(wù),并再次等待一段時間。
最后,打印一條消息表示守護進程正在啟動,并調(diào)用 daemonFun 函數(shù)在后臺運行守護進程。

總結(jié)

以上腳本可以方便地停止、啟動和守護運行一個服務(wù)。你可以根據(jù)自己的實際需求修改腳本中的變量和函數(shù),以適應(yīng)特定的服務(wù)和環(huán)境。

以上就是Shell重啟SpringBoot項目腳本的示例代碼(含服務(wù)守護)的詳細內(nèi)容,更多關(guān)于Shell重啟SpringBoot項目腳本的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中怎樣處理空指針異常

    Java中怎樣處理空指針異常

    程序中的變量是?null,就意味著它沒有引用指向或者說沒有指針。這時,我們對這個變量進行任何操作,都必然會引發(fā)空指針異常,本文主要介紹了Java中怎樣處理空指針異常,感興趣的可以了解一下
    2022-05-05
  • SpringBoot3.3中實現(xiàn)多端口監(jiān)聽的示例代碼

    SpringBoot3.3中實現(xiàn)多端口監(jiān)聽的示例代碼

    在SpringBoot應(yīng)用中實現(xiàn)多端口監(jiān)聽,可以讓一個應(yīng)用處理不同類型的HTTP請求或暴露多個服務(wù)接口,本文詳細講解了通過配置application.yml文件和編寫自定義配置類的方法,實現(xiàn)了對多個端口的監(jiān)聽,感興趣的可以了解一下
    2024-11-11
  • 解決MyBatis返回結(jié)果類型為Boolean的問題

    解決MyBatis返回結(jié)果類型為Boolean的問題

    這篇文章主要介紹了解決MyBatis返回結(jié)果類型為Boolean的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • springboot項目中添加自定義日志及配置過程

    springboot項目中添加自定義日志及配置過程

    這篇文章主要介紹了springboot項目中添加自定義日志,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • SpringBoot集成minio實現(xiàn)文件上傳和刪除功能

    SpringBoot集成minio實現(xiàn)文件上傳和刪除功能

    這篇文章主要介紹了SpringBoot集成minio實現(xiàn)文件上傳和刪除功能,詳細介紹每個功能的實現(xiàn)步驟和代碼示例,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • SpringBoot實現(xiàn)支付寶沙箱支付的完整步驟

    SpringBoot實現(xiàn)支付寶沙箱支付的完整步驟

    沙箱支付是一種用于模擬真實支付環(huán)境的測試工具,它提供了一個安全的測試環(huán)境,供開發(fā)者在不影響真實交易的情況下進行支付功能的開發(fā)和測試,這篇文章給大家介紹了SpringBoot實現(xiàn)支付寶沙箱支付的完整步驟,需要的朋友可以參考下
    2024-04-04
  • 詳細分析java線程wait和notify

    詳細分析java線程wait和notify

    本篇文章是對java多線程wait()和notify()進行了詳細的分析介紹,需要了解的朋友參考下
    2015-07-07
  • MybatisPlus條件查詢的具體使用

    MybatisPlus條件查詢的具體使用

    MybatisPlus通過條件構(gòu)造器可以組裝復(fù)雜的查詢條件,本文主要介紹了MybatisPlus條件查詢的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 簡單了解JAVA中類、實例與Class對象

    簡單了解JAVA中類、實例與Class對象

    這篇文章主要介紹了簡單了解JAVA中類、實例與Class對象,類是面向?qū)ο缶幊陶Z言的一個重要概念,它是對一項事物的抽象概括,可以包含該事物的一些屬性定義,以及操作屬性的方法,需要的朋友可以參考下
    2019-06-06
  • 解決SpringCloud Gateway采用OpenFeign遠程調(diào)用失敗的問題

    解決SpringCloud Gateway采用OpenFeign遠程調(diào)用失敗的問題

    在使用SpringCloud網(wǎng)關(guān)進行統(tǒng)一鑒權(quán)和認證過程中,通過OpenFeign遠程調(diào)用鑒權(quán)服務(wù)器接口時可能會遇到遠程調(diào)用失敗的問題,這通常是因為HttpMessageConverters沒有被正確注入到Spring容器中
    2024-09-09

最新評論