linux下後臺啓動springboot項目

原文鏈接:https://www.cnblogs.com/sueyyyy/p/9958836.html

我們知道啓動springboot的項目有三種方式:

  • 運行主方法啓動
  • 使用命令 mvn spring-boot:run”在命令行啓動該應用
  • 運行“mvn package”進行打包時,會打包成一個可以直接運行的 JAR 文件,使用“java -jar”命令就可以直接運行。

我們在開發的時候,通常會使用前兩種,而在部署的時候往往會使用第三種。但是,我們在使用java -jar來運行的時候,並非後臺運行。

下面我們來說說服務器上如何後臺啓動springboot項目。實際上,實現的方法有很多種,這裏就列兩種還比較好用的方式:

nohup和Shell

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

nohup 命令

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

語法:

nohup Command [ Arg … ][ & ]

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

示例:

nohup java -jar xxx.jar &

這樣執行後,nohup會把執行結果中的日誌輸出到當前文件夾下面的nohup.out文件中,通常情況下我們使用以上命令即可。
我們也可以手動指定一個參數來規定日誌文件的輸出地點,如:

nohup java -jar xxx.jar > catalina.out  2>&1 &

如果不需要輸出日誌,可以使用如下命令

nohup java -jar xxx.jar >/dev/null &

所以,我們只需要使用nohup java -jar yourapp.jar &命令,就能讓yourapp.jar在後臺運行了。但是,爲了方便管理,我們還可以通過Shell來編寫一些用於啓動應用的腳本,比如下面幾個:
關閉應用的腳本:stop.sh

#!/bin/bash
PID=$(ps -ef | grep yourapp.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi

啓動應用的腳本:start.sh

#!/bin/bash
nohup java -jar yourapp.jar --server.port=8888 &

整合了關閉和啓動的腳本:run.sh,由於會先執行關閉應用,然後再啓動應用,這樣不會引起端口衝突等問題,適合在持續集成系統中進行反覆調用。

#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh

系統服務

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

在pom.xml中添加Spring Boot的插件,並注意設置executable配置

<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/目錄下

sudo ln -s /var/yourapp/yourapp.jar /etc/init.d/yourapp

在完成軟連接創建之後,我們就可以通過如下命令對yourapp.jar應用來控制啓動、停止、重啓操作了

/etc/init.d/yourapp start|stop|restart

綜上,一般情況下我們使用以下命令即可:

nohup java -jar xxx.jar &
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章