springboot項目使用maven打包成jar包,如何在linux優雅部署?平時啟動項目使用java -jar命令,關閉程序需要查詢pid再查殺進程,這樣都太麻煩了,今天發現一個博客已經寫好的腳本,如下:
實現以下命令:
- 啟動 : start
- 停止 :stop
- 重啟 : restart
- 運行狀態 :status
- 查看實時日志 : log
- 備份 : backup
備注:腳本會屏蔽部分敏感詞,估針對實際情況進行修改即可使用。
腳本代碼
腳本內容如下,復制修改后保存即可使用(如 : xxx.sh),腳本已有相應的注釋應該好理解。
#!/bin/bash #這里可替換為jar包名字 APP_NAME=xxx-1.0.jar #根據實際情況修改參數 JVM="-server -Xms2g -Xmx2g -Xmn512m -XX:PermSize=128M -XX:MaxNewSize=128m -XX:MaxPermSize=25zh6m -Xss256k -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -Xloggc:/logs/xxx-server/GC/xxx-gc.log" #APPFILE_PATH="-Dspring.config.location=/usr/local/config/application.properties" #使用說明,用來提示輸入參數 usage() { echo "Usage: sh 執行腳本.sh [start|stop|restart|status|log|backup]" exit 1 } #檢查程序是否在運行 is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #如果不存在返回1,存在返回0 if [ -z "${pid}" ]; then return 1 else return 0 fi } #啟動方法 start(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is already running. pid=${pid} ." else #nohup java $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1 #后台啟動jar包,且控制環境變量,根據實際情況修改吧。 nohup java $JVM -jar $APP_NAME --spring.profiles.active=prod > /dev/null 2>&1 & fi } #停止方法 stop(){ is_exist if [ $? -eq "0" ]; then kill -9 $pid else echo "${APP_NAME} is not running" fi } #輸出運行狀態 status(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is NOT running." fi } #重啟 restart(){ stop start } #日志 log(){ # 輸出實時日志 tail -n 100 -f /logs/fdc-server/fdc-server.log } #備份 backup(){ #根據需求自定義備份文件路徑。 BACKUP_PATH=/usr/local/webapps/backup/xxx-server/ #獲取當前時間作為備份文件名 BACKUP_DATE=`date +"%Y%m%d(%H:%M:%S)"` echo 'backup file ->'$BACKUP_PATH$BACKUP_DATE'.jar' #備份當前jar包 cp -r /usr/local/webapps/$APP_NAME $BACKUP_PATH$BACKUP_DATE'.jar' } #根據輸入參數,選擇執行對應方法,不輸入則執行使用說明 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; "log") log ;; "backup") backup ;; *) usage ;; esac
備注:腳本中“xxx”相應的位置都需要進行修改。(當然可以做成參數來控制,多項目可使用,但覺得沒必要,請自行修改吧。)
運行腳本
修改完腳本后,上傳到相應位置及文件權限。
查看腳本有哪些方法:
sh xxx.sh
如下圖:
具體命令如下:
cd /xxxx/xxx
#啟動
sh xxx.sh start
#停止
sh xxx.sh stop
#重啟
sh xxx.sh restart
#運行狀態
sh xxx.sh status
#查看實時日志
sh xxx.sh log
#備份
sh xxx.sh backup
至此結束,可根據自己需求去修改。
鏈接:https://www.jianshu.com/p/7effaacb435d
