refactor: 优化启动脚本配置
start.sh 修订: - 删除 APP_JAR、APP_JAR_PATH 变量 - APP_HOME 从脚本所在目录自动获取 - 删除 spring.profiles.active 参数 - 日志目录从 env.properties 读取(默认 /datacfs/applogs/服务名) - console.log 改为 stdout.log env.properties 修订: - LOG_PATH 改为 /datacfs/applogs/worklog-api service.properties 修订: - 删除未使用的 SPRING_PROFILES_ACTIVE 配置
This commit is contained in:
parent
2d2f581896
commit
c2a12a3625
@ -53,8 +53,8 @@ COS_BUCKET_HOST=https://test-1308258046.cos.ap-beijing.myqcloud.com
|
|||||||
COS_REGION=ap-beijing
|
COS_REGION=ap-beijing
|
||||||
|
|
||||||
# ==================== 日志配置 ====================
|
# ==================== 日志配置 ====================
|
||||||
# 日志路径(扁平目录结构,无子目录)
|
# 日志路径(默认:/datacfs/applogs/服务名)
|
||||||
LOG_PATH=./logs
|
LOG_PATH=/datacfs/applogs/worklog-api
|
||||||
|
|
||||||
# 日志级别
|
# 日志级别
|
||||||
LOG_LEVEL_ROOT=INFO
|
LOG_LEVEL_ROOT=INFO
|
||||||
|
|||||||
@ -3,11 +3,9 @@
|
|||||||
# 工作日志服务平台 - 应用启动脚本
|
# 工作日志服务平台 - 应用启动脚本
|
||||||
# ====================================================
|
# ====================================================
|
||||||
|
|
||||||
# 应用配置
|
# 获取脚本所在目录的上级目录作为应用根目录
|
||||||
APP_NAME="worklog-api"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
APP_JAR="worklog-api-1.0.0.jar"
|
APP_HOME="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||||
APP_HOME="/opt/worklog/${APP_NAME}"
|
|
||||||
APP_JAR_PATH="${APP_HOME}/lib/${APP_JAR}"
|
|
||||||
|
|
||||||
# Classpath 配置(lib 目录下所有 JAR + conf 目录)
|
# Classpath 配置(lib 目录下所有 JAR + conf 目录)
|
||||||
CLASSPATH="${APP_HOME}/lib/*:${APP_HOME}/conf"
|
CLASSPATH="${APP_HOME}/lib/*:${APP_HOME}/conf"
|
||||||
@ -40,6 +38,9 @@ load_properties "${APP_HOME}/conf/env.properties"
|
|||||||
# 2. 加载服务个性化配置(覆盖同名参数)
|
# 2. 加载服务个性化配置(覆盖同名参数)
|
||||||
load_properties "${APP_HOME}/conf/service.properties"
|
load_properties "${APP_HOME}/conf/service.properties"
|
||||||
|
|
||||||
|
# 服务名称(从 service.properties 读取,默认值)
|
||||||
|
APP_NAME=${APP_NAME:-worklog-api}
|
||||||
|
|
||||||
# 主启动类(从 service.properties 读取,默认值)
|
# 主启动类(从 service.properties 读取,默认值)
|
||||||
MAIN_CLASS=${MAIN_CLASS:-com.wjbl.worklog.WorklogApplication}
|
MAIN_CLASS=${MAIN_CLASS:-com.wjbl.worklog.WorklogApplication}
|
||||||
|
|
||||||
@ -51,19 +52,15 @@ JVM_MAX_METASPACE_SIZE=${JVM_MAX_METASPACE_SIZE:-256m}
|
|||||||
JVM_GC_TYPE=${JVM_GC_TYPE:-G1GC}
|
JVM_GC_TYPE=${JVM_GC_TYPE:-G1GC}
|
||||||
JVM_MAX_GC_PAUSE_MILLIS=${JVM_MAX_GC_PAUSE_MILLIS:-200}
|
JVM_MAX_GC_PAUSE_MILLIS=${JVM_MAX_GC_PAUSE_MILLIS:-200}
|
||||||
|
|
||||||
|
# 日志目录(从 env.properties 读取,默认值)
|
||||||
|
LOG_DIR=${LOG_PATH:-/datacfs/applogs/${APP_NAME}}
|
||||||
|
STDOUT_LOG="${LOG_DIR}/stdout.log"
|
||||||
|
PID_FILE="${APP_HOME}/${APP_NAME}.pid"
|
||||||
|
|
||||||
JVM_OPTS="-Xms${JVM_XMS} -Xmx${JVM_XMX} -XX:MetaspaceSize=${JVM_METASPACE_SIZE} -XX:MaxMetaspaceSize=${JVM_MAX_METASPACE_SIZE}"
|
JVM_OPTS="-Xms${JVM_XMS} -Xmx${JVM_XMX} -XX:MetaspaceSize=${JVM_METASPACE_SIZE} -XX:MaxMetaspaceSize=${JVM_MAX_METASPACE_SIZE}"
|
||||||
JVM_OPTS="${JVM_OPTS} -XX:+Use${JVM_GC_TYPE} -XX:MaxGCPauseMillis=${JVM_MAX_GC_PAUSE_MILLIS}"
|
JVM_OPTS="${JVM_OPTS} -XX:+Use${JVM_GC_TYPE} -XX:MaxGCPauseMillis=${JVM_MAX_GC_PAUSE_MILLIS}"
|
||||||
JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${APP_HOME}/logs/heapdump.hprof"
|
JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_DIR}/heapdump.hprof"
|
||||||
JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:${APP_HOME}/logs/gc.log"
|
JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:${LOG_DIR}/gc.log"
|
||||||
|
|
||||||
# Spring Boot 配置(从环境变量读取)
|
|
||||||
SPRING_PROFILE=${SPRING_PROFILES_ACTIVE:-prod}
|
|
||||||
SPRING_OPTS="--spring.profiles.active=${SPRING_PROFILE}"
|
|
||||||
|
|
||||||
# 日志文件
|
|
||||||
LOG_DIR="${APP_HOME}/logs"
|
|
||||||
CONSOLE_LOG="${LOG_DIR}/console.log"
|
|
||||||
PID_FILE="${APP_HOME}/${APP_NAME}.pid"
|
|
||||||
|
|
||||||
# 创建日志目录
|
# 创建日志目录
|
||||||
mkdir -p "${LOG_DIR}"
|
mkdir -p "${LOG_DIR}"
|
||||||
@ -80,27 +77,29 @@ if [ -f "${PID_FILE}" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查 JAR 文件是否存在
|
# 检查 lib 目录是否存在
|
||||||
if [ ! -f "${APP_JAR_PATH}" ]; then
|
if [ ! -d "${APP_HOME}/lib" ]; then
|
||||||
echo "ERROR: 找不到应用 JAR 文件: ${APP_JAR_PATH}"
|
echo "ERROR: 找不到 lib 目录: ${APP_HOME}/lib"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 启动应用
|
# 启动应用
|
||||||
echo "========================================="
|
echo "========================================="
|
||||||
echo "启动应用: ${APP_NAME}"
|
echo "启动应用: ${APP_NAME}"
|
||||||
|
echo "应用目录: ${APP_HOME}"
|
||||||
echo "主类: ${MAIN_CLASS}"
|
echo "主类: ${MAIN_CLASS}"
|
||||||
echo "Classpath: ${CLASSPATH}"
|
echo "Classpath: ${CLASSPATH}"
|
||||||
|
echo "日志目录: ${LOG_DIR}"
|
||||||
echo "========================================="
|
echo "========================================="
|
||||||
|
|
||||||
nohup java ${JVM_OPTS} -cp "${CLASSPATH}" ${MAIN_CLASS} ${SPRING_OPTS} \
|
nohup java ${JVM_OPTS} -cp "${CLASSPATH}" ${MAIN_CLASS} \
|
||||||
> "${CONSOLE_LOG}" 2>&1 &
|
> "${STDOUT_LOG}" 2>&1 &
|
||||||
|
|
||||||
PID=$!
|
PID=$!
|
||||||
echo ${PID} > "${PID_FILE}"
|
echo ${PID} > "${PID_FILE}"
|
||||||
|
|
||||||
echo "应用启动中,PID: ${PID}"
|
echo "应用启动中,PID: ${PID}"
|
||||||
echo "日志文件: ${CONSOLE_LOG}"
|
echo "日志文件: ${STDOUT_LOG}"
|
||||||
|
|
||||||
# 等待应用启动
|
# 等待应用启动
|
||||||
sleep 5
|
sleep 5
|
||||||
@ -108,7 +107,7 @@ sleep 5
|
|||||||
# 检查应用是否启动成功
|
# 检查应用是否启动成功
|
||||||
if ps -p ${PID} > /dev/null 2>&1; then
|
if ps -p ${PID} > /dev/null 2>&1; then
|
||||||
echo "应用启动成功!"
|
echo "应用启动成功!"
|
||||||
echo "查看日志: tail -f ${CONSOLE_LOG}"
|
echo "查看日志: tail -f ${STDOUT_LOG}"
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
echo "ERROR: 应用启动失败,请查看日志"
|
echo "ERROR: 应用启动失败,请查看日志"
|
||||||
|
|||||||
@ -17,10 +17,6 @@ TENANT_ID=
|
|||||||
# 主启动类(瘦JAR模式必须配置)
|
# 主启动类(瘦JAR模式必须配置)
|
||||||
MAIN_CLASS=com.wjbl.worklog.WorklogApplication
|
MAIN_CLASS=com.wjbl.worklog.WorklogApplication
|
||||||
|
|
||||||
# ==================== 环境标识 ====================
|
|
||||||
# 运行环境:dev-开发, test-测试, prod-生产
|
|
||||||
SPRING_PROFILES_ACTIVE=prod
|
|
||||||
|
|
||||||
# ==================== 个性化覆盖配置(可选) ====================
|
# ==================== 个性化覆盖配置(可选) ====================
|
||||||
# 如果当前服务需要使用不同的日志路径,可在此覆盖
|
# 如果当前服务需要使用不同的日志路径,可在此覆盖
|
||||||
# LOG_PATH=/var/logs/worklog-api
|
# LOG_PATH=/var/logs/worklog-api
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user