- env.properties新增APP_NAME、INSTANCE_NAME、TENANT_ID配置 - APP_NAME: 服务名称(对应JAR文件名) - INSTANCE_NAME: 实例名称(区分多租户实例,用于日志目录和PID文件) - TENANT_ID: 租户标识(用于Nacos元数据路由) - start.sh传递spring.application.name和TENANT_ID参数 - stop.sh和status.sh同步支持INSTANCE_NAME
52 lines
1.4 KiB
Bash
Executable File
52 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# 查看服务状态
|
|
# 支持多租户模式
|
|
|
|
# 获取脚本所在目录
|
|
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
|
APP_HOME=$(dirname "$SCRIPT_DIR")
|
|
|
|
# 加载环境变量配置
|
|
if [ -f "${APP_HOME}/conf/env.properties" ]; 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 < "${APP_HOME}/conf/env.properties"
|
|
fi
|
|
|
|
# 服务名称和实例名称
|
|
APP_NAME=${APP_NAME:-$(basename "$APP_HOME")}
|
|
INSTANCE_NAME=${INSTANCE_NAME:-${APP_NAME}}
|
|
|
|
# PID文件路径
|
|
PID_FILE="${APP_HOME}/${INSTANCE_NAME}.pid"
|
|
|
|
echo "=========================================="
|
|
echo " Service: ${INSTANCE_NAME}"
|
|
echo "=========================================="
|
|
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat $PID_FILE)
|
|
if ps -p $PID > /dev/null 2>&1; then
|
|
echo -e "Status: \033[32mRUNNING\033[0m"
|
|
echo "PID: ${PID}"
|
|
echo "Home: ${APP_HOME}"
|
|
if [ -n "${TENANT_ID}" ]; then
|
|
echo "Tenant: ${TENANT_ID}"
|
|
fi
|
|
echo ""
|
|
# 显示进程信息
|
|
ps -p $PID -o pid,ppid,%cpu,%mem,etime,cmd --no-headers 2>/dev/null
|
|
else
|
|
echo -e "Status: \033[31mSTOPPED\033[0m (stale PID file)"
|
|
rm -f $PID_FILE
|
|
fi
|
|
else
|
|
echo -e "Status: \033[31mSTOPPED\033[0m"
|
|
fi
|
|
|
|
echo "=========================================="
|