Spring Boot項(xiàng)目中jar包在服務(wù)器上啟動(dòng)的正確姿勢(shì)
關(guān)于
一般上來說,我們?cè)诜?wù)器上啟動(dòng)一個(gè)jar,最簡(jiǎn)單的方式就是java -jar xx.jar,雖然這種方式簡(jiǎn)單但有時(shí)候我們的場(chǎng)景需要更多,例如常駐后臺(tái)運(yùn)行,在命令行窗口關(guān)閉的時(shí)候不中斷項(xiàng)目,指定端口,并且輸出日志到文件中等。所以這個(gè)時(shí)候我們通常會(huì)采用腳本啟動(dòng)和關(guān)閉項(xiàng)目,方便項(xiàng)目的統(tǒng)一管理。
腳本啟動(dòng)和關(guān)閉的案例
1.啟動(dòng)腳本
nohup java -jar ../webapp/xxx.jar --server.port=9002 >> ../logs/xxx.log & tail -f ../logs/xxx.log
2.關(guān)閉腳本
pid=`ps -ef|grep java|grep xxx.jar |awk '{print $2}'`
if [ -z $pid ]; then
echo 'app not runing'
else
echo 'kill pid ' $pid
kill $pid
sleep 5
ps -ef|grep java
fi
3.最后一步,執(zhí)行腳本。(cd到腳本目錄并執(zhí)行)
sh xxx.sh
補(bǔ)充
1.命令后加&符號(hào),可以使命令在后臺(tái)執(zhí)行。
2.tail -f 實(shí)時(shí)查看日志文件。
3.如果要先關(guān)閉項(xiàng)目再啟動(dòng),盡量不要使用Ctrl+z退出命令行窗口的當(dāng)前狀態(tài),最好新開一個(gè)命令行窗口,然后執(zhí)行關(guān)閉腳本,再執(zhí)行啟動(dòng)腳本。這樣操作,可以避免應(yīng)用莫名其妙沒有關(guān)閉到的情況,反復(fù)執(zhí)行關(guān)閉腳本卻沒有殺死應(yīng)用進(jìn)程的奇怪問題,需要?dú)⒍啻巍?/p>
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Mabitis中的#與$符號(hào)區(qū)別及用法介紹
這篇文章主要介紹了Mabitis中的#與$符號(hào)區(qū)別,需要的朋友可以參考下2017-02-02
SpringBoot整合sharding-jdbc?實(shí)現(xiàn)分庫分表操作的示例代碼
在Spring?Boot中使用ShardingSphere的Sharding-JDBC來實(shí)現(xiàn)數(shù)據(jù)庫的分庫分表是一個(gè)常見的需求,下面就拉具體介紹一下實(shí)現(xiàn)步驟,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
java中ThreadPoolExecutor常識(shí)匯總
這篇文章主要介紹了java中ThreadPoolExecutor常識(shí)匯總,線程池技術(shù)在并發(fā)時(shí)經(jīng)常會(huì)使用到,java中的線程池的使用是通過調(diào)用ThreadPoolExecutor來實(shí)現(xiàn)的,需要的朋友可以參考下2019-06-06
Java最簡(jiǎn)潔數(shù)據(jù)結(jié)構(gòu)之冒泡排序快速理解
冒泡排序是編程中數(shù)據(jù)結(jié)構(gòu)繞不過的一個(gè)基礎(chǔ)點(diǎn),有關(guān)于冒泡排序的文章也有很多,但可能會(huì)比較繚亂未能理解,本章將一子u為簡(jiǎn)潔明了的例圖帶你通關(guān)冒泡排序2021-11-11
Java虛擬機(jī)內(nèi)存分配與回收策略問題精細(xì)解讀
Java技術(shù)體系中所提倡的自動(dòng)內(nèi)存管理最終可以歸結(jié)為自動(dòng)化地解決了兩個(gè)問題:給對(duì)象分配內(nèi)存以及回收分配給對(duì)象的內(nèi)存,本文讓我們來詳細(xì)了解2021-11-11
Spring使用@Retryable實(shí)現(xiàn)自動(dòng)重試機(jī)制
在微服務(wù)架構(gòu)中,服務(wù)之間的調(diào)用可能會(huì)因?yàn)橐恍簳r(shí)性的錯(cuò)誤而失敗,例如網(wǎng)絡(luò)波動(dòng)、數(shù)據(jù)庫連接超時(shí)或第三方服務(wù)不可用等,在本文中,我們將介紹如何在 Spring 中使用 @Retryable 實(shí)現(xiàn)自動(dòng)重試機(jī)制,需要的朋友可以參考下2025-01-01
Java源碼解析之SortedMap和NavigableMap
今天帶大家來學(xué)習(xí)Java SortedMap和NavigableMap,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05
SpringBoot?web靜態(tài)資源映射實(shí)現(xiàn)步驟詳解
在springBoot中的靜態(tài)資源的映射是通過SpringMVC中的resourceHttpRequestHandler來進(jìn)行實(shí)現(xiàn)的。在該請(qǐng)求映射器中默認(rèn)規(guī)定了,SpringBoot會(huì)將classPath或者ServletContext下的/static?(/public、/resources?或?/META-INF/resources)目錄中,存放靜態(tài)資源2022-09-09

