diff --git a/scripts/env.properties b/scripts/env.properties index 33e756d..dbd190e 100644 --- a/scripts/env.properties +++ b/scripts/env.properties @@ -4,13 +4,11 @@ # ============================================ # -------------------------------------------- -# 服务标识配置 +# 实例配置(多租户模式需要修改) # -------------------------------------------- -# 服务名称(对应JAR文件名,如fund-sys) -APP_NAME=fund-sys # 实例名称(用于区分多租户实例,如fund-sys-shared, fund-sys-vip001) -# 默认与APP_NAME相同,多租户模式下需要修改 -INSTANCE_NAME=${APP_NAME} +# 默认与JAR文件名相同,多租户模式下需要修改 +# INSTANCE_NAME=fund-sys # 租户标识(多租户模式使用,用于Nacos元数据路由) TENANT_ID= diff --git a/scripts/start.sh b/scripts/start.sh index 34710a6..959d293 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -6,33 +6,33 @@ SCRIPT_DIR=$(dirname "$(readlink -f "$0")") APP_HOME=$(dirname "$SCRIPT_DIR") -# 加载环境变量配置(优先从env.properties读取) +# 自动从lib目录下的JAR文件推断APP_NAME +JAR_FILE=$(ls ${APP_HOME}/lib/*.jar 2>/dev/null | head -1) +if [ -z "$JAR_FILE" ]; then + echo "Error: No JAR file found in ${APP_HOME}/lib/" + exit 1 +fi +APP_NAME=$(basename "$JAR_FILE" .jar) + +# 加载环境变量配置 if [ -f "${APP_HOME}/conf/env.properties" ]; then - # 读取APP_NAME和INSTANCE_NAME while IFS='=' read -r key value; do - # 跳过注释和空行 [[ "$key" =~ ^#.*$ ]] && continue [[ -z "$key" ]] && continue - # 去除前后空格 key=$(echo "$key" | xargs) value=$(echo "$value" | xargs) - # 导出环境变量 + # 跳过APP_NAME,因为已从JAR文件推断 + [[ "$key" == "APP_NAME" ]] && continue export "$key=$value" done < "${APP_HOME}/conf/env.properties" fi -# 服务名称(对应JAR文件名,从env.properties读取或从目录名推断) -APP_NAME=${APP_NAME:-$(basename "$APP_HOME")} - # 实例名称(用于区分多租户实例,默认与APP_NAME相同) INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}} # 日志目录(使用INSTANCE_NAME区分不同实例) LOG_HOME="/datacfs/applogs/${INSTANCE_NAME}" -# JAR文件路径(使用APP_NAME找JAR) -JAR_FILE="${APP_HOME}/lib/${APP_NAME}.jar" - # PID文件路径(使用INSTANCE_NAME) PID_FILE="${APP_HOME}/${INSTANCE_NAME}.pid" diff --git a/scripts/status.sh b/scripts/status.sh index 526fae5..d99e2bf 100755 --- a/scripts/status.sh +++ b/scripts/status.sh @@ -6,6 +6,10 @@ SCRIPT_DIR=$(dirname "$(readlink -f "$0")") APP_HOME=$(dirname "$SCRIPT_DIR") +# 自动从lib目录下的JAR文件推断APP_NAME +JAR_FILE=$(ls ${APP_HOME}/lib/*.jar 2>/dev/null | head -1) +APP_NAME=$(basename "$JAR_FILE" .jar) + # 加载环境变量配置 if [ -f "${APP_HOME}/conf/env.properties" ]; then while IFS='=' read -r key value; do @@ -13,12 +17,12 @@ if [ -f "${APP_HOME}/conf/env.properties" ]; then [[ -z "$key" ]] && continue key=$(echo "$key" | xargs) value=$(echo "$value" | xargs) + [[ "$key" == "APP_NAME" ]] && continue export "$key=$value" done < "${APP_HOME}/conf/env.properties" fi -# 服务名称和实例名称 -APP_NAME=${APP_NAME:-$(basename "$APP_HOME")} +# 实例名称 INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}} # PID文件路径 diff --git a/scripts/stop.sh b/scripts/stop.sh index 11817e0..71e4bd8 100755 --- a/scripts/stop.sh +++ b/scripts/stop.sh @@ -6,6 +6,10 @@ SCRIPT_DIR=$(dirname "$(readlink -f "$0")") APP_HOME=$(dirname "$SCRIPT_DIR") +# 自动从lib目录下的JAR文件推断APP_NAME +JAR_FILE=$(ls ${APP_HOME}/lib/*.jar 2>/dev/null | head -1) +APP_NAME=$(basename "$JAR_FILE" .jar) + # 加载环境变量配置 if [ -f "${APP_HOME}/conf/env.properties" ]; then while IFS='=' read -r key value; do @@ -13,12 +17,12 @@ if [ -f "${APP_HOME}/conf/env.properties" ]; then [[ -z "$key" ]] && continue key=$(echo "$key" | xargs) value=$(echo "$value" | xargs) + [[ "$key" == "APP_NAME" ]] && continue export "$key=$value" done < "${APP_HOME}/conf/env.properties" fi -# 服务名称和实例名称 -APP_NAME=${APP_NAME:-$(basename "$APP_HOME")} +# 实例名称 INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}} # PID文件路径