[轉]Spring Boot應用的後台回合組態

來源:互聯網
上載者:User

標籤:man   common   ini   source   cti   指令碼   持續整合   管理   工具   

轉自:http://blog.didispace.com/spring-boot-run-backend/

 

醬油一篇,整理一下關於Spring Boot後台啟動並執行一些配置方式。在介紹後台回合組態之前,我們先回顧一下Spring Boot應用的幾種運行方式:

  • 運行Spring Boot的應用主類
  • 使用Maven的Spring Boot外掛程式mvn spring-boot:run來運行
  • 打成jar包後,使用java -jar運行

我們在開發的時候,通常會使用前兩種,而在部署的時候往往會使用第三種。但是,我們在使用java -jar來啟動並執行時候,並非後台運行。下面我們分別針對Windows和Linux/Unix兩種環境,整理一下如何配置後台啟動並執行方法。

Windows

Windows下比較簡單,我們可以直接使用這款軟體:AlwaysUp。如所示,簡單、暴力、好用。

配置方式很簡單,我們只需要把Spring Boot應用通過mvn install打成jar包,然後編寫一個java -jar yourapp.jar的bat檔案。再開啟AlwaysUp,點擊工具列的第一個按鈕,如所示,選擇上面編寫的bat檔案,並填寫服務名稱。

完成了建立之後,在列表中可以看到我們配置的服務,通過右鍵選擇Start xxx就能在後台將該應用啟動起來了。

Linux/Unix

下面我們來說說伺服器上該如何來配置。實際上,實現的方法有很多種,這裡就列兩種還比較好用的方式:

nohup和Shell

該方法主要通過使用nohup命令來實現,該命令的詳細介紹如下:

nohup 命令

用途:不掛斷地運行命令。

文法:nohup Command [ Arg … ][ & ]

描述:nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)訊號。在登出後使用 nohup 命令運行後台中的程式。要運行後台中的 nohup 命令,添加 &到命令的尾部。

所以,我們只需要使用nohup java -jar yourapp.jar &命令,就能讓yourapp.jar在後台運行了。但是,為了方便管理,我們還可以通過Shell來編寫一些用於啟動應用的指令碼,比如下面幾個:

  • 關閉應用的指令碼:stop.sh
123456789 #!/bin/bashPID=$(ps -ef | grep yourapp.jar | grep -v grep | awk ‘{ print $2 }‘)if [ -z "$PID" ]thenecho Application is already stoppedelseecho kill $PIDkill $PIDfi
  • 啟動應用的指令碼:start.sh
12 #!/bin/bashnohup java -jar yourapp.jar --server.port=8888 &
  • 整合了關閉和啟動的指令碼:run.sh,由於會先執行關閉應用,然後再啟動應用,這樣不會引起連接埠衝突等問題,適合在持續整合系統中進行反覆調用。
12345 #!/bin/bashecho stop applicationsource stop.shecho start applicationsource start.sh
系統服務

在Spring Boot的Maven外掛程式中,還提供了構建完整可執行程式的功能,什麼意思呢?就是說,我們可以不用java -jar,而是直接運行jar來執行程式。這樣我們就可以方便的將其建立成系統服務在後台運行了。主要步驟如下:

  • pom.xml中添加Spring Boot的外掛程式,並注意設定executable配置
1234567891011 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> </plugins> </build>
  • 在完成上述配置後,使用mvn install進行打包,構建一個可執行檔jar包

  • 建立軟串連到/etc/init.d/目錄下

1 sudo ln -s /var/yourapp/yourapp.jar /etc/init.d/yourapp
  • 在完成軟串連建立之後,我們就可以通過如下命令對yourapp.jar應用來控制啟動、停止、重啟操作了
1 /etc/init.d/yourapp start|stop|restart
如果您有任何想法或問題需要討論或交流,可進入交流區發表您的想法或問題。  本文由 程式猿DD-翟永超 創作,採用 CC BY 3.0 CN協議 進行許可。 可自由轉載、引用,但需署名作者且註明文章出處。如轉載至公眾號,請在文末添加作者公眾號二維碼。
  

[轉]Spring Boot應用的後台回合組態

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.