08ea5fbe98
添加用户管理视图、API和状态管理文件
125 lines
3.1 KiB
Bash
Executable File
125 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
ADMIN_DIR="$(cd "$(dirname "$0")/.." && pwd)/everything-is-suitable-admin"
|
|
PID_FILE="/tmp/admin-service.pid"
|
|
LOG_FILE="/tmp/admin-service.log"
|
|
PORT=${ADMIN_PORT:-5174}
|
|
|
|
start_admin() {
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
|
echo "Admin 前端服务已在运行中 (PID: $PID)"
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
echo "正在启动 Admin 前端服务 (port: $PORT)..."
|
|
cd "$ADMIN_DIR"
|
|
|
|
if [ ! -d "node_modules" ]; then
|
|
echo "安装依赖..."
|
|
npm install
|
|
fi
|
|
|
|
nohup npm run dev -- --port "$PORT" > "$LOG_FILE" 2>&1 &
|
|
|
|
echo $! > "$PID_FILE"
|
|
PID=$(cat "$PID_FILE")
|
|
|
|
echo "等待服务启动..."
|
|
MAX_WAIT=60
|
|
WAITED=0
|
|
while [ $WAITED -lt $MAX_WAIT ]; do
|
|
if curl -s "http://localhost:$PORT" > /dev/null 2>&1; then
|
|
echo "✅ Admin 前端服务已成功启动 (PID: $PID, Port: $PORT)"
|
|
echo "访问地址: http://localhost:$PORT"
|
|
echo "日志文件: $LOG_FILE"
|
|
return 0
|
|
fi
|
|
sleep 2
|
|
WAITED=$((WAITED + 2))
|
|
printf "\r等待中... %d秒 " $WAITED
|
|
done
|
|
|
|
echo ""
|
|
echo "❌ Admin 前端服务启动超时"
|
|
echo "查看日志: tail -100 $LOG_FILE"
|
|
stop_admin
|
|
return 1
|
|
}
|
|
|
|
stop_admin() {
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
|
echo "正在停止 Admin 前端服务 (PID: $PID)..."
|
|
kill "$PID" 2>/dev/null
|
|
sleep 2
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
|
kill -9 "$PID" 2>/dev/null
|
|
fi
|
|
rm -f "$PID_FILE"
|
|
echo "✅ Admin 前端服务已停止"
|
|
else
|
|
echo "Admin 前端服务未运行"
|
|
rm -f "$PID_FILE"
|
|
fi
|
|
else
|
|
echo "未找到 PID 文件,Admin 前端服务可能未运行"
|
|
fi
|
|
}
|
|
|
|
status_admin() {
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
|
echo "Admin 前端服务运行中 (PID: $PID, Port: $PORT)"
|
|
echo "访问地址: http://localhost:$PORT"
|
|
return 0
|
|
fi
|
|
fi
|
|
echo "Admin 前端服务未运行"
|
|
return 1
|
|
}
|
|
|
|
logs_admin() {
|
|
if [ -f "$LOG_FILE" ]; then
|
|
echo "显示最近100行日志 (Ctrl+C 退出):"
|
|
tail -100 -f "$LOG_FILE"
|
|
else
|
|
echo "日志文件不存在: $LOG_FILE"
|
|
fi
|
|
}
|
|
|
|
case "${1:-}" in
|
|
start)
|
|
start_admin
|
|
;;
|
|
stop)
|
|
stop_admin
|
|
;;
|
|
restart)
|
|
stop_admin
|
|
sleep 2
|
|
start_admin
|
|
;;
|
|
status)
|
|
status_admin
|
|
;;
|
|
logs)
|
|
logs_admin
|
|
;;
|
|
*)
|
|
echo "用法: $0 {start|stop|restart|status|logs}"
|
|
echo ""
|
|
echo "环境变量:"
|
|
echo " ADMIN_PORT - Admin 服务端口 (默认: 5174)"
|
|
echo ""
|
|
echo "示例:"
|
|
echo " ADMIN_PORT=3000 $0 start # 在端口3000启动"
|
|
echo " $0 logs # 查看日志"
|
|
exit 1
|
|
;;
|
|
esac
|