SpringBoot項目發佈到服務器的兩種方式war和jar

1.前言

SpringBoot項目在開發階段,執行mvn spring-boot:run運行項目,達到快速檢驗功能的目的。在生產環境中,則不推薦這樣做,提供兩種式來發布:jar包和war包。本章的實驗是在ubuntu18.04操作系統上進行的。

2.jar包(推薦)

$ nohup java -jar XXX.jar & 

命令解釋:

  • java -jar XXX.jar:用這種的方式啓動程序,當前終端窗口會被鎖定,不能進行其他操作,按CTRL + C或直接關閉終端窗口都會讓程序退出。
  • java -jar XXX.jar &:這種方式的話,當前終端窗口不會被鎖定,能進行其他操作,但是當窗口關閉時,程序會退出。
  • nohup java -jar XXX.jar &:只這種方式,才能夠使當前終端不會被鎖定,可以進行其他操作,即使終端關閉或賬戶退出,也不會中止程序運行。程序仍然在後臺運行。
  • &表示程序在後臺運行。
  • nohup的作用是運行後面的命令,忽略掛起信號。
    如果標準輸入是終端,那麼從一個無法讀的文件重定向它(其實就是忽略它);
    如果標準輸出是終端,那麼將輸出追加到$HOME/nohup.out文件($HOME是家目錄,在我的實驗環境中就是/home/kyun/nohup.out),可能的話;
    如果是錯誤的話,那麼重向它到標準輸出。我們也可以將輸出重定向到我們指定的文件:
$ nohup java -jar XXX.jar >tmp.txt &

這種方式的好處就是當終端關閉或賬戶退出系統時,程序仍然在後臺運行。

3.1輔助命令

  • 可通過jobs命令查看後臺運行任務
$ jobs
[1]+  Running                 nohup java -jar SpringBootGroceryDemo.jar > tmp.txt &
  • jobs命令會列出所有後臺執行的作業,並且每個作業前面都有個編號。如果想將某個作業調回前臺控制,只需要執行命令 fg 編號即可,如:
$ fg 1
nohup java -jar SpringBootGroceryDemo.jar > tmp.txt
  • 使用ps aux | grep 程序名查看web的pid
$ ps aux | grep SpringBootGroceryDemo
kyun     13966  2.3  4.2 5165192 345532 pts/4  Sl   00:50   0:15 java -jar SpringBootGroceryDemo.jar
  • 查看某端口占用的線程的pid
$ netstat -nlp | grep :8080
  • 關閉程序kill pid
$ kill 13966

3.war包

請參考《SpringBoot項目打包war發佈到Jetty9》

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