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

使用linux部署Spring Boot程序

 更新時(shí)間:2018年01月15日 10:47:50   作者:青蛙小王子  
springboot程序在linux服務(wù)器上應(yīng)該怎么部署?這次就分享下linux下如何正確部署springboot程序,感興趣的朋友一起看看吧

SpingBoot的學(xué)習(xí)總算告一段落了,但它還留給了我們一個(gè)疑問,那就是程序在linux服務(wù)器上應(yīng)該怎么部署?使用命令啟動(dòng)程序后如果ssh斷開了程序會(huì)不會(huì)被shutdown?對于第一個(gè)問題比較好解決,只需要保證jdk安裝正確就不會(huì)有太大問題。棘手的問題是后面這個(gè),解決問題的關(guān)鍵就是要保證程序以守護(hù)進(jìn)程(后臺方式)運(yùn)行。這次就分享下linux下如何正確部署程序

為了解決這個(gè)問題,我查閱網(wǎng)上的資料找到了下面3種解決方案

1   把jar包弄成系統(tǒng)服務(wù)(不推薦)

這種方法缺點(diǎn)也比較明顯,那就是容易出現(xiàn)服務(wù)啟動(dòng)不起來,因?yàn)椴煌膌inux發(fā)行版本都或多或少存在差異

2  使用nohup 命令配合kill -9 xxx

這種方法比較容易接受,也是一種折中的做法,但是要停止程序會(huì)比較麻煩需要使用命令找到進(jìn)程再使用kill -9 ,還是有點(diǎn)麻煩

3 使用screen、tmux等方式(推薦)

綜合考慮這種方法比較科學(xué)因?yàn)樗峁┝私y(tǒng)一的管理多個(gè)會(huì)話的界面和相應(yīng)的功能,操作起來比較簡單些,缺點(diǎn)是需要一點(diǎn)點(diǎn)的學(xué)習(xí)成本

tmux常用命令:

$ tmux new -s session-name           新建會(huì)話
$ tmux a -t session-name               接入指定會(huì)話
$ tmux detach /$ Ctrl-b d              斷開當(dāng)前會(huì)話
$ tmux kill-session -t session-name  關(guān)閉會(huì)話

$ tmux ls                                       顯示所有會(huì)話

screen常用命令:

$ screen -S window-name           新建會(huì)話
$ screen -r 會(huì)話編號或名稱           接入指定會(huì)話/重新連接會(huì)話
$ screen -ls                               顯示所有會(huì)話
Ctrl+a b                                   分離當(dāng)前會(huì)話
Ctrl+a k 

以下是它們的區(qū)別,雖說tmux比較先進(jìn)但究竟如何選擇還是看大家的使用習(xí)慣

tmux 和 screen 很像,但比 screen 更好。要問好在哪里,簡單的回答就是雖然與 screen 的功能相同,但是 tmux 設(shè)計(jì)得更好。screen 雖然可用,但是很不穩(wěn)定。

以下是一些 tmux 超越 screen 的地方:

  • screen 的項(xiàng)目大體上已經(jīng)終止了,并且代碼中有大量的問題
  • tmux 是一個(gè)活躍的項(xiàng)目,并且其代碼庫經(jīng)常進(jìn)行更新
  • tmux 使用的是真正的客戶端/服務(wù)器模型,而 screen 只是模擬了這種模型的行為
  • tmux 同時(shí)支持 emacs 和 vim 的快捷鍵
  • tmux 支持自動(dòng)重命名窗口
  • tmux 可以高度的腳本化
  • tmux 的窗口分割功能更加先進(jìn)

SpringBoot使用maven打包比較方便,打包時(shí)檢查下pom.xml的配置,確保有如下配置:     

<build> 
<plugins> 
  <plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
    <configuration> 
      <!--fork : 如果沒有該項(xiàng)配置,devtools不會(huì)起作用,即應(yīng)用不會(huì)restart --> 
      <fork>true</fork> 
      <!-- 可選的配置 --> 
      <executable>true</executable> 
    </configuration> 
  </plugin> 
</plugins> 
lt;/build> 

打包就用maven install就行了,如果打包成功找到相應(yīng)的jar重命名后上傳到linux服務(wù)器授權(quán)一下就行

這樣應(yīng)用就啟動(dòng)了,即使命令行關(guān)閉了或者從ssh斷開也不會(huì)影響程序的正常運(yùn)行

斷開連接

結(jié)束會(huì)話后程序就被shutdown了,如下所示

screen的使用和tmux大同小異,這邊已經(jīng)實(shí)踐過了,就部署程序使其在后臺運(yùn)行,選screen和tmux效果都差不多。

PS:下面給大家介紹linux部署spring-boot

先對項(xiàng)目maven clean 然后在項(xiàng)目上maven install  打成jar包,之后到linux上刪除前一個(gè)版本的進(jìn)程

  查看java進(jìn)程的命令 ps -ef | grep java

  殺死進(jìn)程 kill -9 進(jìn)程號

  直接運(yùn)行spring-boot項(xiàng)目 nohup java -jar sinocube.jar & 使用nohup一定要以&結(jié)尾

  nohup 回輸出日志文件,日志文件可以自定義文件名,默認(rèn)為nohup.nohup.out

       cat nohup.out 查看日志nohup.out是文件名稱
  tailf nohup.out 實(shí)時(shí)查看日志

相關(guān)文章

  • 圖文示例詳解Lucene數(shù)據(jù)模型查詢原理

    圖文示例詳解Lucene數(shù)據(jù)模型查詢原理

    這篇文章主要為大家通過圖文示例詳解Lucene數(shù)據(jù)模型查詢原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • SpringCloud?微服務(wù)數(shù)據(jù)權(quán)限控制的實(shí)現(xiàn)

    SpringCloud?微服務(wù)數(shù)據(jù)權(quán)限控制的實(shí)現(xiàn)

    這篇文章主要介紹的是權(quán)限控制的數(shù)據(jù)權(quán)限層面,意思是控制可訪問數(shù)據(jù)資源的數(shù)量,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-11-11
  • Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法示例

    Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法示例

    這篇文章主要介紹了Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了spring面向切面AOP定義切點(diǎn)的具體步驟、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01
  • Java矢量隊(duì)列Vector使用示例

    Java矢量隊(duì)列Vector使用示例

    Vector類實(shí)現(xiàn)了一個(gè)動(dòng)態(tài)數(shù)組。和ArrayList很相似,但是兩者是不同的Vector是同步訪問的;Vector包含了許多傳統(tǒng)的方法,這些方法不屬于集合框架
    2023-01-01
  • Spring裝配bean方法實(shí)例總結(jié)

    Spring裝配bean方法實(shí)例總結(jié)

    這篇文章主要介紹了spring裝配bean方法實(shí)例總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • java實(shí)現(xiàn)切圖并且判斷圖片是不是純色/彩色圖片

    java實(shí)現(xiàn)切圖并且判斷圖片是不是純色/彩色圖片

    本篇文章主要介紹了java實(shí)現(xiàn)切圖并且判斷圖片是否是純色/彩色圖片,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • Java中創(chuàng)建線程的四種方法解析

    Java中創(chuàng)建線程的四種方法解析

    這篇文章主要介紹了Java中創(chuàng)建線程的四種方法解析,線程是Java編程語言中的一個(gè)重要概念,它允許程序在同一時(shí)間執(zhí)行多個(gè)任務(wù),線程是程序中的執(zhí)行路徑,可以同時(shí)執(zhí)行多個(gè)線程,每個(gè)線程都有自己的執(zhí)行流程,需要的朋友可以參考下
    2023-10-10
  • Java中的Map集合簡單匯總解析

    Java中的Map集合簡單匯總解析

    這篇文章主要介紹了Java中的Map集合簡單匯總解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Maven將代碼及依賴打成一個(gè)Jar包的方式詳解(最新推薦)

    Maven將代碼及依賴打成一個(gè)Jar包的方式詳解(最新推薦)

    這篇文章主要介紹了Maven將代碼及依賴打成一個(gè)Jar包的方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Java如何優(yōu)雅替換if-else語句

    Java如何優(yōu)雅替換if-else語句

    當(dāng)邏輯分支非常多的時(shí)候,if-else套了一層又一層,那么如何干掉過多的if-else,本文就詳細(xì)的介紹一下,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論