一般情況下springboot項目部署到linux下面需要經過一下幾個步驟:
1.查看項目是否在運行狀態(常用命令[其中一個]):
1 ps -ef | grep xxx.jar
2.如果項目在運行狀態,需要先將現在運行的項目pid殺掉(常用命令[其中之一]):
1 kill -9 xxx
3.然后再檢查一下項目運行狀態,確認舊項目pid已經被kill掉。
4.將更新的項目jar包放到指定位置,然后使用nohup后台啟動boot項目(常用簡單啟動命令[其中之一]):
1 nohup java -jar xxx.jar> log.log &
5.然后查看指定日志:
1 tail -f log.log
如果開發項目需要頻繁的去更新,每次都需要這些操作,就會很麻煩,於是 查閱百度資料 寫一個shell腳本去直接執行這些操作:
1.在項目jar包統計目錄下使用 vim 命令新建一個 restart.sh 腳本:
1 vim restart.sh
2.按 i 鍵進入編輯模式:寫入以下內容:
1 #!/bin/sh 2 #項目jar包名稱 3 APP_NAME=xxx-0.0.1-SNAPSHOT.jar 4 #重啟命令 5 pid=`ps -ef | grep $APP_NAME | grep -v grep |awk '{print $2}'` 6 if [ $pid ]; then 7 echo :App is running pid=$pid 8 kill -9 $pid 9 fi 10 nohup java -Xms128m -Xmx256m -jar $APP_NAME> log.log 2>&1 & 11 tail -f log.log
然后 :wq 保存退出.
注釋(sh腳本解釋):
1.第3行:命名上傳至linux服務器的jar包名稱;
2.第5行:查詢項目jar包pid,將運行目標的線程pid賦值給pid變量;
3.第6,7,8行:判斷pid是否運行,如果在運行狀態,就kill掉;
4.第10行:啟動項目jar包;
5.第11行:打開項目啟動日志文件;
完成。
然后在項目jar包部署到服務器上,運行restart.sh就可以運行項目了:
1 sh restart.sh
還有一種根據端口號進行重啟項目,供參考:

1 #!/bin/bash 2 #定義項目jar端口號 3 JAR_PORT=8080 4 #定義項目名稱 5 APP_NAME=xxxx.jar 6 #重啟命令 7 #根據端口號查詢進程pid進行重啟 8 pid=$(netstat -nlp | grep $JAR_PORT | awk '{print $7}' | awk -F"/" '{ print $1}'); 9 10 #如果端口被占用則殺死pid進程 11 if [ $pid ]; then 12 echo :App is running pid=$pid 13 kill -9 $pid 14 fi 15 nohup java -jar $APP_NAME> run.log 2>&1 & 16 tail -f run.log
還有一種啟動方法就是個腳本加權限:
1 chmod 744 restart.sh
這樣就可以使用以下命令啟動了:
1 ./restart.sh
當然 上個命令同樣也是適用的。