linux部署springBoot項(xiàng)目的腳本問(wèn)題
linux部署springBoot項(xiàng)目的腳本
重啟 restart.sh
#!/bin/bash
# 定義變量
JAR_NAME="xxx.jar"
LOG_DIR="logs/xxx"
# 創(chuàng)建日志目錄
mkdir -p "$LOG_DIR"
# 查找占用端口的進(jìn)程ID
PID=$(ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}')
echo "PID: ${PID:-未找到}"
echo "Restarting service..."
# 停止進(jìn)程
if [ -n "$PID" ]; then
echo "Stopping existing process (PID: $PID)..."
kill -9 "$PID" > /dev/null 2>&1
fi
# 等待2秒
sleep 2
# 啟動(dòng)新進(jìn)程
echo "Starting application..."
nohup java -jar "$JAR_NAME" >> "$LOG_DIR/app.log" 2>&1 &
# 檢查是否啟動(dòng)成功
if [ $? -eq 0 ]; then
echo "Application started successfully"
echo "PID: $!"
else
echo "Failed to start application"
exit 1
fi
# 保持終端不退出
read -p "Press any key to continue..." -n1 -s停止 stop.sh
#!/bin/bash
JAR_NAME="xxx.jar"
# 獲取監(jiān)聽(tīng)該端口的進(jìn)程PID
PID=$(ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}')
echo "PID: ${PID:-未找到}"
if [ -z "$PID" ]; then
echo "PID not found. Server may not be running."
else
echo "Stopping existing process (PID: $PID)..."
kill -9 "$PID" > /dev/null 2>&1
# 檢查是否成功
if [ $? -eq 0 ]; then
echo "Stop Success!"
else
echo "Failed to stop the server."
fi
fi
read -p "Press any key to continue..." -n1 -s
說(shuō)明:
maven打包時(shí),可以將腳本打包跟jar包在同一個(gè)目錄
<fileSet>
<directory>bin/linux</directory>
<includes>
<include>restart.sh</include>
<include>stop.sh</include>
</includes>
<outputDirectory>/</outputDirectory>
</fileSet>總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中的Lombok庫(kù)及使用舉例詳解
Lombok是一個(gè)Java庫(kù),通過(guò)注解的方式簡(jiǎn)化代碼編寫(xiě),減少樣板代碼,它能夠自動(dòng)生成getter、setter、構(gòu)造函數(shù)、toString等方法,提升開(kāi)發(fā)效率,這篇文章主要介紹了SpringBoot中的Lombok庫(kù),需要的朋友可以參考下2025-05-05
java實(shí)現(xiàn)二叉樹(shù)的創(chuàng)建及5種遍歷方法(總結(jié))
下面小編就為大家?guī)?lái)一篇java實(shí)現(xiàn)二叉樹(shù)的創(chuàng)建及5種遍歷方法(總結(jié))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式實(shí)例
最近在項(xiàng)目開(kāi)發(fā)中,需要為一個(gè)使用MySQL數(shù)據(jù)庫(kù)的SpringBoot項(xiàng)目,新添加一個(gè)PLSQL數(shù)據(jù)庫(kù)數(shù)據(jù)源,下面這篇文章主要給大家介紹了關(guān)于SpringBoot多數(shù)據(jù)源的兩種實(shí)現(xiàn)方式,需要的朋友可以參考下2022-04-04
Java EasyExcel讀寫(xiě)excel如何解決poi讀取大文件內(nèi)存溢出問(wèn)題
這篇文章主要介紹了Java EasyExcel讀寫(xiě)excel如何解決poi讀取大文件內(nèi)存溢出問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
SpringBoot?@InitBinder注解綁定請(qǐng)求參數(shù)的過(guò)程詳解
這篇文章主要介紹了SpringBoot?@InitBinder注解綁定請(qǐng)求參數(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
Java中RabbitMQ隊(duì)列實(shí)現(xiàn)RPC詳解
這篇文章主要介紹了Java中RabbitMQ隊(duì)列實(shí)現(xiàn)RPC詳解,在本教程中,我們將使用RabbitMQ構(gòu)建一個(gè)RPC系統(tǒng):一個(gè)客戶(hù)端和一個(gè)RPC服務(wù)器,我們將創(chuàng)建一個(gè)返回斐波那契數(shù)字的模擬RPC服務(wù),,需要的朋友可以參考下2023-08-08
SpringBoot調(diào)用第三方WebService接口的操作技巧(.wsdl與.asmx類(lèi)型)
這篇文章主要介紹了SpringBoot調(diào)第三方WebService接口的操作代碼(.wsdl與.asmx類(lèi)型 ),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
SpringBoot為啥不用配置啟動(dòng)類(lèi)的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot為啥不用配置啟動(dòng)類(lèi)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
java接口返回參數(shù)按照請(qǐng)求參數(shù)進(jìn)行排序方式
這篇文章主要介紹了java接口返回參數(shù)按照請(qǐng)求參數(shù)進(jìn)行排序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09

