- 新增service.properties:每个服务独立的个性化配置 - APP_NAME: 服务名称 - INSTANCE_NAME: 实例名称(多租户场景) - TENANT_ID: 租户标识 - env.properties:所有服务共用的统一配置 - Nacos/Redis/日志等公共参数 - 加载顺序:先env.properties,后service.properties(个性化覆盖统一) - 更新assembly.xml:service.properties打包到conf目录 - 更新启动脚本:统一使用load_properties函数加载配置
67 lines
1.4 KiB
Bash
Executable File
67 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
||
# 服务停止脚本
|
||
# 支持多租户模式
|
||
|
||
# 获取脚本所在目录
|
||
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
||
APP_HOME=$(dirname "$SCRIPT_DIR")
|
||
|
||
# 加载函数:读取properties文件
|
||
load_properties() {
|
||
local file="$1"
|
||
if [ -f "$file" ]; then
|
||
while IFS='=' read -r key value; do
|
||
[[ "$key" =~ ^#.*$ ]] && continue
|
||
[[ -z "$key" ]] && continue
|
||
key=$(echo "$key" | xargs)
|
||
value=$(echo "$value" | xargs)
|
||
export "$key=$value"
|
||
done < "$file"
|
||
fi
|
||
}
|
||
|
||
# 加载配置文件(先统一,后个性化)
|
||
load_properties "${APP_HOME}/conf/env.properties"
|
||
load_properties "${APP_HOME}/conf/service.properties"
|
||
|
||
# 设置默认值
|
||
APP_NAME=${APP_NAME:-"unknown"}
|
||
INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}}
|
||
|
||
# PID文件路径
|
||
PID_FILE="${APP_HOME}/${INSTANCE_NAME}.pid"
|
||
|
||
# 检查是否运行
|
||
if [ ! -f "$PID_FILE" ]; then
|
||
echo "${INSTANCE_NAME} is not running"
|
||
exit 0
|
||
fi
|
||
|
||
PID=$(cat $PID_FILE)
|
||
if ! ps -p $PID > /dev/null 2>&1; then
|
||
echo "${INSTANCE_NAME} is not running"
|
||
rm -f $PID_FILE
|
||
exit 0
|
||
fi
|
||
|
||
# 停止服务
|
||
echo "Stopping ${INSTANCE_NAME} (PID: $PID)..."
|
||
kill $PID
|
||
|
||
# 等待停止
|
||
for i in {1..30}; do
|
||
if ! ps -p $PID > /dev/null 2>&1; then
|
||
break
|
||
fi
|
||
sleep 1
|
||
done
|
||
|
||
# 强制停止
|
||
if ps -p $PID > /dev/null 2>&1; then
|
||
echo "Force killing ${INSTANCE_NAME}..."
|
||
kill -9 $PID
|
||
fi
|
||
|
||
rm -f $PID_FILE
|
||
echo "${INSTANCE_NAME} stopped"
|