微服务jar包启动脚本
#!/bin/bash
#Created on Jul 24
#@author yunweibu@foresee.com
#Version 1.1
#刷新系统环境变量
source ~/.bash_profile
echo "Sping Cloud ops script.FORESEE"
#封装定义颜色输出
function green() {
echo -e "\033[32m$1 \033[0m"
}
function red() {
echo -e "\033[31m$1 \033[0m"
}
#设置目录路径变量
DISK_DIR=/data/logs
#日志路径
BIN_DIR=$(cd `dirname $0`; pwd)
#bin目录的路径
DEPLOY_DIR=${BIN_DIR%/*}
#安装目录
cd $DEPLOY_DIR
SERVER_NAME=$(pwd | sed 's,^\(.*/\)\?\([^/]*\),\2,')
#去服务名
CONF_DIR=${DEPLOY_DIR}/conf
#conf目录
LIB_DIR=${DEPLOY_DIR}/lib
#lib目录
LOGS_DIR=${DEPLOY_DIR}/logs
#日志目录
LOGS_ROOTPATH=${DISK_DIR}/${SERVER_NAME}
#微服务日志传参目录
#设置JAR包变量
JAR_NAME="`ls ${LIB_DIR} | grep .jar | sort -nr | head -1`"
#jar包名称
RUN_JAR_PATH=${LIB_DIR}/${JAR_NAME}
#jar包绝对路径名称
PIDS=`ps aux |grep "$JAR_NAME"|grep -v grep| awk '{print $2}'`
#进程PIDS
# set env
source $DEPLOY_DIR/../setEnv.sh
#设置微服务环境变量
#设置九维监控变量
jw_IP='192.168.200.150'
jw_MONITOR_PATH=${DEPLOY_DIR}/nnops/pinpoint-bootstrap-1.6.0.jar
jw_KEY=RC0cx2CxItzEZN4x5t8d80
jw_SECRET=eiPptF_GInbrrGRixGgh_0
jw_ProjectID=23DC1AD4FFFFFF96328C1C62F7139853
jw_SENTRYDSN=http://${jw_KEY}:${jw_SECRET}@${jw_IP}/applog/${jw_ProjectID}?options
#输出打印目录
# echo desc
echo "################################################################################"
java -version
echo "JAVA_HOME=$JAVA_HOME"
echo "DEPLOY_DIR=$DEPLOY_DIR"
echo "RUN_JAR_PATH=$RUN_JAR_PATH"
echo "################################################################################"
if [ -n "$PIDS" ]; then
red "ERROR: The [$DEPLOY_DIR:$SERVER_NAME] already started! PID is $PIDS!"
exit 1
fi
#判断微服务是否已经开启
# init logs dir
if [ ! -d $LOGS_DIR ]; then
mkdir $LOGS_DIR
fi
#判断日志目录是否存在
if [ ! -d $LOGS_ROOTPATH ]; then
mkdir -p $LOGS_ROOTPATH
fi
#判断目录存在
JAVA_OPTS="${ENV_OPTS} -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8"
#java启动参数
JAVA_DEBUG_OPTS=""
if [ "$1" = "debug" ]; then
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
fi
JAVA_JMX_OPTS=""
if [ "$1" = "jmx" ]; then
JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
fi
JAVA_MEM_OPTS=""
BITS=`java -version 2>&1 | grep -i 64-bit`
if [ -n "$BITS" ]; then
JAVA_MEM_OPTS=" -server -Xms256m -Xmx256m -Xmn128m -XX:MaxMetaspaceSize=256m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Dspring.application.name=${SERVER_NAME} "
else
JAVA_MEM_OPTS=" -client -Xms128m -Xmx128m -XX:MaxMetaspaceSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
fi
#判断系统java的位数
green "Starting the $SERVER_NAME ...\c"
nohup java -javaagent:$jw_MONITOR_PATH -Dlog.rootPath=$LOGS_ROOTPATH -Dsentrydsn=$jw_SENTRYDSN $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -jar $RUN_JAR_PATH > /dev/null 2>&1 &
#启动命令 nohup
green "OK! \c"
PIDS=`ps -ef | grep java | grep "$LIB_DIR" | awk '{print $2}'`
green "PID: $PIDS"
green "LOGS_ROOTPATH: $LOGS_ROOTPATH/logs/${SERVER_NAME}.log"
#输出启动信息
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)