Files
gangyan/scripts/start-all.sh
liuguancen 0c3a393d04 [运维] 接入内网 searxng + 清理启动脚本 + 修 log-trim 权限
搜索接口:

- duckduckgo_search.py / ZhipuSearchAPI.py 切换到内网 searxng (原 43.251.225.121 / 134.122.191.214 已失效)

启动脚本清理:

- 删除废弃 backend/ 目录 (与 chat_web_backend/ 编译产物 jar MD5 相同,仅是改名副本)

- 删除 start_all.sh 与 langchain-chat/{start,stop,stop_quick,shutdown_all,restart}.sh (被 scripts/*-restart.sh 覆盖)

- 删除 chat_web_backend/{start,test_mysql}.sh

修复:

- scripts/backend-restart.sh 对齐当前实际在跑的 chat_web_backend.jar (profile=dev)

- scripts/log-trim-daemon.sh 把 LOCK 移到 /tmp 按用户命名,修复非首次用户跑时的 Permission denied

新增:

- scripts/start-all.sh:一键启动入口,串联 mysql/redis/milvus/langchain/backend/frontend,含端口自检

- chat_web_backend/application-local.yml.archived:原 backend/ 下 yj profile 覆盖配置的归档备份

其他:

- .gitignore 忽略 scripts/pptist-deploy/PPTist/ (323M 第三方源码树)
2026-04-20 15:59:11 +08:00

84 lines
3.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# 须用 bash 执行;若误用 sh/dash 会自动改用 bash 再跑一遍
[ -n "${BASH_VERSION:-}" ] || exec /usr/bin/env bash "$0" ${1+"$@"}
# 一键启动全部 gangyan 服务:基础设施 -> 后端 -> 前端。
# 每一步直接 source 已有的 *-restart.sh保持单一事实来源。
# 日志gangyan/logs/start-all.log
set -u
source "$(cd "$(dirname "$0")" && pwd)/common-restart.sh"
LOG_FILE="$LOG_DIR/start-all.log"
run_step() {
local label="$1" script="$2"
log_tee "━━━━━━━━ ${label} ━━━━━━━━"
if [ ! -x "$SCRIPT_DIR/$script" ]; then
log_tee "跳过: $script 不存在或不可执行"
return 0
fi
bash "$SCRIPT_DIR/$script" 2>&1 | tee -a "$LOG_FILE"
local rc=${PIPESTATUS[0]}
[ "$rc" -eq 0 ] || log_tee "警告: $script 返回 $rc"
return 0
}
port_check() {
local port="$1" name="$2"
if ss -tln 2>/dev/null | grep -qE ":${port}[[:space:]]"; then
log_tee " [OK] ${name} :${port}"
else
log_tee " [!!] ${name} :${port} 未监听"
fi
}
log_tee "╔══════════════════════════════════════╗"
log_tee "║ gangyan 全量启动 $(date '+%F %H:%M:%S')"
log_tee "╚══════════════════════════════════════╝"
# 1) 基础设施Docker 容器MySQL / Redis / Milvus
run_step "[1/5] MySQL" mysql-restart.sh
run_step "[2/5] Redis" redis-restart.sh
run_step "[3/5] Milvus" milvus-restart.sh
# 2) 应用层langchain-chat 会顺带起 pdf-convert-service + log-trim daemon
run_step "[4/6] langchain-chat + pdf-convert + log-trim" langchain-restart.sh
run_step "[5/6] Java 后端" backend-restart.sh
run_step "[6/6] 前端 vite" frontend-restart.sh
# 3) 辅助进程状态excalidraw-ai / pptist-ai 当前以 screen -dmS 管理,非脚本化;本脚本仅做健康检查)
log_tee "━━━━━━━━ 辅助进程检查 ━━━━━━━━"
if pgrep -f 'excalidraw-ai-proxy\.py' >/dev/null; then
log_tee " [OK] excalidraw-ai-proxy.py (screen -dmS aiproxy)"
else
log_tee " [!!] excalidraw-ai-proxy.py 未运行。手动启: screen -dmS aiproxy bash -c 'cd $GANGYAN_ROOT/scripts && /opt/software/miniconda3/envs/langchain-chat/bin/python excalidraw-ai-proxy.py'"
fi
if pgrep -f 'pptist-ai-backend\.py' >/dev/null; then
log_tee " [OK] pptist-ai-backend.py (screen -dmS pptist-ai)"
else
log_tee " [!!] pptist-ai-backend.py 未运行。手动启: screen -dmS pptist-ai bash -c 'cd $GANGYAN_ROOT/scripts && /opt/software/miniconda3/envs/langchain-chat/bin/python pptist-ai-backend.py'"
fi
# 4) 系统级 tools-nginxsystemd 管理,不在本脚本中重启)
if systemctl is-active --quiet nginx 2>/dev/null; then
log_tee " [OK] nginx (systemd, tools-nginx.conf -> :18000)"
else
log_tee " [!!] nginx 未运行。sudo systemctl start nginx"
fi
# 5) 端口自检
log_tee "━━━━━━━━ 端口自检(等 5 秒) ━━━━━━━━"
sleep 5
port_check 3306 "MySQL (3306 映射)"
port_check 33306 "MySQL (33306 映射)"
port_check 6379 "Redis"
port_check 19530 "Milvus gRPC"
port_check 9091 "Milvus HTTP"
port_check 7861 "langchain-chat API"
port_check 6006 "pdf-convert-service"
port_check 8099 "Java 后端"
port_check 3000 "vite 前端"
port_check 18000 "tools-nginx (工具集合)"
log_tee ""
log_tee "完成。完整日志: $LOG_FILE"
log_tee "访问: http://<server-ip>:3000/metalinfo"