標籤: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來編寫一些用於啟動應用的指令碼,比如下面幾個:
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 |
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> |
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應用的後台回合組態