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:
zhangjf 2026-02-24 18:56:29 +08:00
parent 2d2f581896
commit c2a12a3625
3 changed files with 24 additions and 29 deletions

View File

@ -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

View File

@ -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: 应用启动失败,请查看日志"

View File

@ -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