1. 程式人生 > >jenkins啟動指令碼

jenkins啟動指令碼

1.需求分析

   筆者專案jenkins+svn實現了自動打包及自動部署,但是部署之前先得kill原來的程序,顯示不是很智慧,所以筆者再次分享下自關閉原來程序,啟動新服務的指令碼

2.指令碼分享

 #!/bin/sh

## 應用選項
source /etc/profile

export BUILD_ID=DontKillMe

CUR_DIR=$(pwd)

APP_DIR=/home/services

APP_NAME=micro-service-gateway-0.0.1-SNAPSHOT

APP_PORT=8074

JVM_OPTIONS="-Xms256m -Xmx256m"

JAR_NAME=$APP_NAME\.jar

 cd $APP_DIR

## 檢查程序是否存在
 PID=$(ps -ef | grep -w "$APP_NAME" | grep -v "grep" | awk '{print $2}')
  if [ "$PID" == "" ]; then
    echo "應用:$APP_NAME 埠:$APP_PORT 程序不存在。"
            else
    echo "應用:$APP_NAME 埠:$APP_PORT 存在程序:$PID"
    kill -15 $PID
    sleep 3
            ## 如果仍然存在則強行停止
            CHECK_PID=$(ps -ef | grep -w "$APP_NAME" | grep -w "java"| grep -w "$APP_PORT" | grep -v "grep" | awk '{print $2}')
            if [ "$CHECK_PID" == "" ]; then
    echo "應用:$APP_NAME 埠:$APP_PORT 程序:$PID 停止成功。"
            else
    echo "應用:$APP_NAME 埠:$APP_PORT 程序:$PID 強行停止!"
    kill -9 $PID
            fi
    fi

    sleep 1

    echo "應用:$APP_NAME 埠:$APP_PORT 正在啟動..."
    nohup java $JVM_OPTIONS -jar $APP_DIR/$JAR_NAME --server.port=$APP_PORT >/home/services/logs/gateway.txt &
    echo "應用啟動命令已執行,稍候請檢查服務是否可用。"

    cd $CUR_DIR

效果圖如下:

好了,我是張星,歡迎加入博主技術交流群:526601468