1. 程式人生 > >shell指令碼啟動spring boot專案

shell指令碼啟動spring boot專案

Spring Boot專案啟動

我們知道打包好的Spring Boot專案這樣啟動

java -jar -Dfile.encoding=utf-8 test-0.0.1-SNAPSHOT.jar

在linux中,常常使用nohup後臺啟動其他程式,Spring Boot專案使用nohup啟動如下

nohup java -jar -Dfile.encoding=utf-8 test-0.0.1-SNAPSHOT.jar &

如果使用上面命令啟動,注意這時候遠端terminal要主動exit退出,不這樣做系統可能會殺掉上面啟動的程序

由於開發需要,需要頻繁地更新專案,寫了兩個shell指令碼啟動和關閉專案

  • 啟動專案指令碼 start.sh
#!/bin/bash
cd project  # ccd2002-0.0.1-SNAPSHOT.jar所在目錄
sudo java -Xms128m -Xmx256m -jar -Dfile.encoding=utf-8 ccd2002-0.0.1-SNAPSHOT.jar &

為什麼要加sudo?在沒加sudo的情況下,專案會被系統莫名殺掉,估計是由於記憶體佔用原因,不知道如果使用nohup可不可以去掉sudo

  • 關閉專案指令碼
#!/bin/bash
sudo kill $(ps -aux | grep 'ccd2002' | awk 'NR==2{print $2}'
)

上面指令碼使用ps命令查到ccd2002專案的資訊,然後使用awk過濾資訊獲取專案pid,最後使用kill殺掉專案。為了方便大家理解,下面分解 sudo kill $(ps -aux | grep 'ccd2002' | awk 'NR==2{print $2}') ps -aux | grep 'ccd2002'命令執行結果截圖如下 這裡寫圖片描述 ps -aux | grep 'test' | awk 'NR==2{print $2}'命令取出上圖中指出的pid 這裡寫圖片描述 awk命令對ps結果進行處理,awk 'NR==2{print $2}'中的NR=2表示ps結果的第二行,$2表示行中的第二個元素