verguenza преди 5 години
родител
ревизия
8ab6d45878
променени са 1 файла, в които са добавени 102 реда и са изтрити 0 реда
  1. 102 0
      start.sh

+ 102 - 0
start.sh

@@ -0,0 +1,102 @@
+#!/bin/bash
+
+# 修改APP_NAME为云效上的应用名
+APP_NAME=manatee
+
+
+PROG_NAME=$0
+ACTION=$1
+APP_START_TIMEOUT=20    # 等待应用启动的时间
+APP_PORT=8080          # 应用端口
+HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT}  # 应用健康检查URL
+APP_HOME=/home/admin/${APP_NAME} # 从package.tgz中解压出来的jar包放到这个目录下
+JAR_NAME=${APP_HOME}/target/manatee-1.0.jar # jar包的名字
+JAVA_OUT=${APP_HOME}/logs/start.log  #应用的启动日志
+
+# 创建出相关目录
+mkdir -p ${APP_HOME}
+mkdir -p ${APP_HOME}/logs
+usage() {
+    echo "Usage: $PROG_NAME {start|stop|restart}"
+    exit 2
+}
+
+#health_check() {
+#    exptime=0
+#    echo "checking ${HEALTH_CHECK_URL}"
+#    while true
+#        do
+#            status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code}  ${HEALTH_CHECK_URL}`
+#            if [ "$?" != "0" ]; then
+#               echo -n -e "\rapplication not started"
+#            else
+#                echo "code is $status_code"
+#                if [ "$status_code" == "200" ];then
+#                    break
+#                fi
+#            fi
+#            sleep 1
+#            ((exptime++))
+#
+#            echo -e "\rWait app to pass health check: $exptime..."
+#
+#            if [ $exptime -gt ${APP_START_TIMEOUT} ]; then
+#                echo 'app start failed'
+#               exit 1
+#            fi
+#        done
+#    echo "check ${HEALTH_CHECK_URL} success"
+#}
+start_application() {
+    echo "starting java process"
+    nohup java -jar ${JAR_NAME} > ${JAVA_OUT} 2>&1 &
+    echo "started java process"
+}
+
+stop_application() {
+   checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'`
+
+   if [[ ! $checkjavapid ]];then
+      echo -e "\rno java process"
+      return
+   fi
+
+   echo "stop java process"
+   times=60
+   for e in $(seq 60)
+   do
+        sleep 1
+        COSTTIME=$(($times - $e ))
+        checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'`
+        if [[ $checkjavapid ]];then
+            kill -9 $checkjavapid
+            echo -e  "\r        -- stopping java lasts `expr $COSTTIME` seconds."
+        else
+            echo -e "\rjava process has exited"
+            break;
+        fi
+   done
+   echo ""
+}
+start() {
+    start_application
+#    health_check
+}
+stop() {
+    stop_application
+}
+case "$ACTION" in
+    start)
+        start
+    ;;
+    stop)
+        stop
+    ;;
+    restart)
+        stop
+        start
+    ;;
+    *)
+        usage
+    ;;
+esac