shell指令碼啟動spring boot專案
阿新 • • 發佈:2018-12-10
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
表示行中的第二個元素