fundplatform/scripts/status.sh
zhangjf dd8de5d96e refactor: APP_NAME从JAR文件自动推断
- APP_NAME不再写在env.properties,而是从lib/*.jar自动推断
- env.properties只保留INSTANCE_NAME和TENANT_ID(多租户场景使用)
- 所有脚本(start.sh/stop.sh/status.sh)统一从JAR文件获取APP_NAME
- 避免打包后所有服务的env.properties都一样导致APP_NAME冲突
2026-02-22 15:59:53 +08:00

56 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# 查看服务状态
# 支持多租户模式
# 获取脚本所在目录
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
[[ "$key" =~ ^#.*$ ]] && continue
[[ -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
# 实例名称
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 "=========================================="