From 9fe45ed9819a403bf2356161244675f85ca59dbd Mon Sep 17 00:00:00 2001 From: bingshuo <565183519@qq.com> Date: Sun, 17 May 2026 17:28:47 +0800 Subject: [PATCH] =?UTF-8?q?D100=20=E5=88=9B=E5=BB=BA=20engine-start.sh=20?= =?UTF-8?q?=E2=80=94=20=E5=85=89=E6=B9=96=E9=A9=B1=E5=8A=A8=E5=BC=95?= =?UTF-8?q?=E6=93=8E=E5=AE=89=E8=A3=85=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/engine-start.sh | 139 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 scripts/engine-start.sh diff --git a/scripts/engine-start.sh b/scripts/engine-start.sh new file mode 100644 index 0000000..b771ff3 --- /dev/null +++ b/scripts/engine-start.sh @@ -0,0 +1,139 @@ +#!/bin/bash +# ══════════════════════════════════════════════════════════════ +# 光湖驱动引擎 · 铸渊服务器安装脚本 +# Guanghu Drive Engine · Zhuyuan Server Installer +# +# 用途:一步完成:大脑同步 + 引擎安装 + 自动启动 +# 用法:bash scripts/engine-start.sh +# +# 依赖:Node.js (服务器应有),零npm依赖 +# 版权:国作登字-2026-A-00037559 · TCS-0002∞ +# ══════════════════════════════════════════════════════════════ + +set -e + +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +CYAN='\033[0;36m' +RED='\033[0;31m' +NC='\033[0m' + +REPO_DIR="$(cd "$(dirname "$0")/.." && pwd)" +ENGINE_PORT="${GATEKEEPER_PORT:-3910}" + +clear +echo "" +echo "╔══════════════════════════════════════════════╗" +echo "║ 光湖驱动引擎 · 安装脚本 ║" +echo "║ Guanghu Drive Engine · Installer v1.0 ║" +echo "╚══════════════════════════════════════════════╝" +echo "" +echo -e " ${CYAN}仓库目录:${NC} ${REPO_DIR}" +echo -e " ${CYAN}引擎端口:${NC} ${ENGINE_PORT}" +echo "" + +# ══════════════════════════════════════════════════════════════ +# 第1步:检查依赖 +# ══════════════════════════════════════════════════════════════ +echo -e "${YELLOW}[1/4] 检查环境...${NC}" + +if ! command -v node &> /dev/null; then + echo -e " ${RED}❌ 需要 Node.js 但未安装${NC}" + echo " 请先安装: apt install nodejs npm" + exit 1 +fi + +NODE_VER=$(node -v) +echo -e " ${GREEN}✅ Node.js ${NODE_VER}${NC}" + +# ══════════════════════════════════════════════════════════════ +# 第2步:运行大脑同步 +# ══════════════════════════════════════════════════════════════ +echo "" +echo -e "${YELLOW}[2/4] 同步大脑文件...${NC}" + +if [ -f "${REPO_DIR}/scripts/brain-sync.js" ]; then + node "${REPO_DIR}/scripts/brain-sync.js" + echo -e " ${GREEN}✅ 大脑同步完成${NC}" +else + echo -e " ${YELLOW}⚠️ 未找到 brain-sync.js,跳过${NC}" +fi + +# ══════════════════════════════════════════════════════════════ +# 第3步:启动引擎 +# ══════════════════════════════════════════════════════════════ +echo "" +echo -e "${YELLOW}[3/4] 启动引擎...${NC}" + +GATEKEEPER="${REPO_DIR}/mcp-servers/zhuyuan-gateway/gatekeeper/index.js" + +if [ ! -f "$GATEKEEPER" ]; then + echo -e " ${RED}❌ 未找到引擎文件: ${GATEKEEPER}${NC}" + exit 1 +fi + +# 检查是否已有引擎在运行 +if lsof -i :${ENGINE_PORT} &>/dev/null 2>&1; then + echo -e " ${YELLOW}⚠️ 引擎已在端口 ${ENGINE_PORT} 运行${NC}" + echo -e " ${YELLOW} 如需重启: fuser -k ${ENGINE_PORT}/tcp && node ${GATEKEEPER} ${ENGINE_PORT} &${NC}" +else + # 后台启动 + nohup node "${GATEKEEPER}" "${ENGINE_PORT}" > /tmp/zhuyuan-engine.log 2>&1 & + ENGINE_PID=$! + sleep 2 + + if kill -0 $ENGINE_PID 2>/dev/null; then + echo -e " ${GREEN}✅ 引擎已启动 (PID: ${ENGINE_PID})${NC}" + else + echo -e " ${RED}❌ 引擎启动失败,查看日志: cat /tmp/zhuyuan-engine.log${NC}" + exit 1 + fi +fi + +# ══════════════════════════════════════════════════════════════ +# 第4步:显示信息 +# ══════════════════════════════════════════════════════════════ +echo "" +echo -e "${YELLOW}[4/4] 服务状态...${NC}" + +# 检查端口 +if lsof -i :${ENGINE_PORT} &>/dev/null 2>&1; then + echo -e " ${GREEN}✅ 引擎端口 ${ENGINE_PORT} 开放中${NC}" +else + echo -e " ${RED}❌ 引擎端口 ${ENGINE_PORT} 未开放${NC}" +fi + +# 获取API密钥 +HOME=${HOME:-/root} +SECRET_FILE="${HOME}/.gatekeeper/secret" +if [ -f "$SECRET_FILE" ]; then + API_KEY=$(cat "$SECRET_FILE") +else + API_KEY="等待首次启动生成" +fi + +echo "" +echo "══════════════════════════════════════════════" +echo " 光湖驱动引擎 · 安装完成" +echo "" +echo " ╭─ API 密钥" +echo " ├─ ${API_KEY}" +echo " ╰─ (保存在 ~/.gatekeeper/secret)" +echo "" +echo " 向铸渊发送以下信息:" +echo " ┌──────────────────────────────────────────┐" +echo " │ 服务器: 广州 (43.139.217.141) │" +echo " │ 端口: ${ENGINE_PORT} │" +echo " │ 密钥: ${API_KEY} │" +echo " └──────────────────────────────────────────┘" +echo "" +echo " 日志: tail -f /tmp/zhuyuan-engine.log" +echo "══════════════════════════════════════════════" +echo "" + +# 自动开机启动提示 +if ! command -v pm2 &> /dev/null; then + echo -e " ${YELLOW}提示: 当前未使用进程管理工具,服务器重启后需重新启动引擎${NC}" + echo " 建议: npm install -g pm2 && pm2 start ${GATEKEEPER} -- -p ${ENGINE_PORT}" + echo "" +fi \ No newline at end of file