Linux下shell通用脚本启动jar(微服务)

#!/bin/bash

#source /etc/profile
# Auth:Liucx
# Please change these parameters according to your real env.
# set Java Home: Remember that dolphin only supports JDK8!
JAVA_HOME=/usr/java/jdk1.8.0_162

# application directory
cd `dirname $0`
APP_HOME=`pwd`

APP_NAME="`cd {APP_HOME} && find -name '*.jar' `" JAR_HOME=`pwd |awk -F"/" '{print $NF}'` # Java JVM lunch parameters if [ x"JAVA_MEM_OPTS" == x ];then
JAVA_MEM_OPTS="-server -Xms512m -Xmx512m -Xmn128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
fi


# waiting timeout for starting, in seconds
START_WAIT_TIMEOUT=30

psid=0

checkpid() {
javaps=`JAVAHOME/bin/jpsl|grep"JAR_HOME"`
if [ -n "javaps"];thenpsid=echojavaps | awk '{print $1}'`
else
psid=0
fi
}

 

start() {
checkpid

if [ psidne0];thenecho"================================"echo"warn:APP_NAME already started! (pid=psid)"echo"================================"elseechon"StartingAPP_NAME ..."
#-Dspring.profiles.active=dev 指定环境
nohup JAVAHOME/bin/javajarDspring.profiles.active=devDCONFIGENABLE=trueJAVA_MEM_OPTS APPNAME>{JAR_HOME}.log 2>&1 &
checkpid
if [ psidne0];thenecho"(pid=psid) [OK]"
else
echo "[Failed]"
fi
fi
}

stop() {

sleep 2
checkpid

if [ psidne0];thenechon"StoppingAPP_NAME ...(pid=psid) "       #kill -9psid
kill -9 psidif[? -eq 0 ]; then
echo "[OK]"
else
echo "[Failed]"
fi

# checkpid
# if [ psid -ne 0 ]; then #         stop #      fi    else       echo "================================"       echo "warn:APP_NAME is not running"
echo "================================"
fi
}

 

status() {
checkpid

if [ psidne0];thenecho"APP_NAME is running! (pid=psid)"elseecho"APP_NAME is not running"
fi
}


info() {
echo "System Information:"
echo "****************************"
echo `head -n 1 /etc/issue`
echo `uname -a`
echo
echo "JAVA_HOME=JAVAHOME"echoJAVA_HOME/bin/java -version`
echo
echo "APP_HOME=APPHOME"echo"APPNAME=APP_NAME"
echo "****************************"
}

case "1" in    'start')       start       ;;    'stop')      stop      ;;    'restart')      stop      echo "You restart the application ..."      start #      ;;    'status')      status      ;;    'info')      info      ;;   *)      echo "Usage:0 {start|stop|restart|status|info}"
exit 1
esac

posted @   GaoYanbing  阅读(376)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示