- 新增 scripts/dev-start.sh: 本地开发环境启动脚本,支持启动所有/核心/单个服务 - 新增 scripts/dev-stop.sh: 本地开发环境停止脚本 - 新增 scripts/dev-status.sh: 服务状态检查脚本 - 优化各模块 Controller/Service/VO/DTO 代码 - 删除过时的计划文件
238 lines
5.4 KiB
Bash
Executable File
238 lines
5.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================
|
|
# 本地开发环境停止脚本
|
|
# 用法: ./dev-stop.sh [选项]
|
|
# 选项:
|
|
# all - 停止所有服务(默认)
|
|
# gateway - 仅停止网关
|
|
# sys - 仅停止系统服务
|
|
# cust - 仅停止客户服务
|
|
# proj - 仅停止项目服务
|
|
# req - 仅停止需求服务
|
|
# exp - 仅停止支出服务
|
|
# receipt - 仅停止票据服务
|
|
# file - 仅停止文件服务
|
|
# report - 仅停止报表服务
|
|
# frontend - 仅停止前端
|
|
# help - 显示帮助信息
|
|
# ============================================
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
APP_HOME="$(dirname "$SCRIPT_DIR")"
|
|
LOG_DIR="${APP_HOME}/logs"
|
|
|
|
# 颜色输出
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
log_info() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
log_warn() {
|
|
echo -e "${YELLOW}[WARN]${NC} $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# 停止服务
|
|
# 参数: $1=服务名, $2=进程匹配模式
|
|
stop_service() {
|
|
local name=$1
|
|
local pattern=$2
|
|
local pid_file="${LOG_DIR}/${name}.pid"
|
|
|
|
if [ -f "${pid_file}" ]; then
|
|
local pid=$(cat "${pid_file}")
|
|
if ps -p ${pid} > /dev/null 2>&1; then
|
|
log_info "停止 ${name} 服务 (PID: ${pid})..."
|
|
kill ${pid} 2>/dev/null
|
|
|
|
# 等待进程结束
|
|
local count=0
|
|
while ps -p ${pid} > /dev/null 2>&1; do
|
|
if [ $count -ge 10 ]; then
|
|
log_warn "${name} 未响应,强制终止..."
|
|
kill -9 ${pid} 2>/dev/null
|
|
break
|
|
fi
|
|
sleep 1
|
|
((count++))
|
|
done
|
|
|
|
log_info "${name} 服务已停止"
|
|
else
|
|
log_warn "${name} 服务未运行"
|
|
fi
|
|
rm -f "${pid_file}"
|
|
else
|
|
# 通过进程名查找
|
|
local pids=$(pgrep -f "${pattern}")
|
|
if [ -n "${pids}" ]; then
|
|
log_info "停止 ${name} 服务 (PIDs: ${pids})..."
|
|
echo "${pids}" | xargs kill 2>/dev/null
|
|
log_info "${name} 服务已停止"
|
|
else
|
|
log_warn "${name} 服务未运行"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# 停止网关
|
|
stop_gateway() {
|
|
stop_service "gateway" "fund-gateway.*GatewayApplication"
|
|
}
|
|
|
|
# 停止系统服务
|
|
stop_sys() {
|
|
stop_service "sys" "fund-sys.*SysApplication"
|
|
}
|
|
|
|
# 停止客户服务
|
|
stop_cust() {
|
|
stop_service "cust" "fund-cust.*CustApplication"
|
|
}
|
|
|
|
# 停止项目服务
|
|
stop_proj() {
|
|
stop_service "proj" "fund-proj.*ProjApplication"
|
|
}
|
|
|
|
# 停止需求服务
|
|
stop_req() {
|
|
stop_service "req" "fund-req.*ReqApplication"
|
|
}
|
|
|
|
# 停止支出服务
|
|
stop_exp() {
|
|
stop_service "exp" "fund-exp.*ExpApplication"
|
|
}
|
|
|
|
# 停止票据服务
|
|
stop_receipt() {
|
|
stop_service "receipt" "fund-receipt.*ReceiptApplication"
|
|
}
|
|
|
|
# 停止文件服务
|
|
stop_file() {
|
|
stop_service "file" "fund-file.*FileApplication"
|
|
}
|
|
|
|
# 停止报表服务
|
|
stop_report() {
|
|
stop_service "report" "fund-report.*ReportApplication"
|
|
}
|
|
|
|
# 停止前端
|
|
stop_frontend() {
|
|
log_info "停止前端服务..."
|
|
|
|
# 停止 vite 进程
|
|
local vite_pids=$(pgrep -f "vite.*fund-admin")
|
|
if [ -n "${vite_pids}" ]; then
|
|
log_info "停止前端服务 (PIDs: ${vite_pids})..."
|
|
echo "${vite_pids}" | xargs kill 2>/dev/null
|
|
log_info "前端服务已停止"
|
|
else
|
|
log_warn "前端服务未运行"
|
|
fi
|
|
|
|
# 清理 PID 文件
|
|
rm -f "${LOG_DIR}/frontend.pid"
|
|
}
|
|
|
|
# 停止所有服务
|
|
stop_all() {
|
|
log_info "=========================================="
|
|
log_info "停止本地开发环境..."
|
|
log_info "=========================================="
|
|
|
|
stop_frontend
|
|
stop_gateway
|
|
stop_sys
|
|
stop_cust
|
|
stop_proj
|
|
stop_req
|
|
stop_exp
|
|
stop_receipt
|
|
stop_file
|
|
stop_report
|
|
|
|
log_info "=========================================="
|
|
log_info "本地开发环境已停止"
|
|
log_info "=========================================="
|
|
}
|
|
|
|
# 显示帮助
|
|
show_help() {
|
|
echo "用法: $0 [选项]"
|
|
echo ""
|
|
echo "选项:"
|
|
echo " all 停止所有服务(默认)"
|
|
echo " gateway 仅停止网关服务"
|
|
echo " sys 仅停止系统服务"
|
|
echo " cust 仅停止客户服务"
|
|
echo " proj 仅停止项目服务"
|
|
echo " req 仅停止需求服务"
|
|
echo " exp 仅停止支出服务"
|
|
echo " receipt 仅停止票据服务"
|
|
echo " file 仅停止文件服务"
|
|
echo " report 仅停止报表服务"
|
|
echo " frontend 仅停止前端服务"
|
|
echo " help 显示此帮助信息"
|
|
echo ""
|
|
echo "示例:"
|
|
echo " $0 # 停止所有服务"
|
|
echo " $0 sys # 仅停止系统服务"
|
|
echo " $0 frontend # 仅停止前端"
|
|
}
|
|
|
|
# 主入口
|
|
case "$1" in
|
|
gateway)
|
|
stop_gateway
|
|
;;
|
|
sys)
|
|
stop_sys
|
|
;;
|
|
cust)
|
|
stop_cust
|
|
;;
|
|
proj)
|
|
stop_proj
|
|
;;
|
|
req)
|
|
stop_req
|
|
;;
|
|
exp)
|
|
stop_exp
|
|
;;
|
|
receipt)
|
|
stop_receipt
|
|
;;
|
|
file)
|
|
stop_file
|
|
;;
|
|
report)
|
|
stop_report
|
|
;;
|
|
frontend)
|
|
stop_frontend
|
|
;;
|
|
help|--help|-h)
|
|
show_help
|
|
;;
|
|
all|"")
|
|
stop_all
|
|
;;
|
|
*)
|
|
log_error "未知选项: $1"
|
|
show_help
|
|
exit 1
|
|
;;
|
|
esac
|