[运维] 接入内网 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 第三方源码树)
This commit is contained in:
2026-04-20 15:59:11 +08:00
parent 279b104434
commit 0c3a393d04
18 changed files with 222 additions and 585 deletions

View File

@@ -1,13 +1,12 @@
#!/usr/bin/env bash
# 须用 bash 执行;若误用 sh/dash 会自动改用 bash 再跑一遍
[ -n "${BASH_VERSION:-}" ] || exec /usr/bin/env bash "$0" ${1+"$@"}
# 重启 Java 后端 chat_web_yj.jar与 start_all.sh 一致
# 重启 Java 后端 chat_web_backend.jar源码 mvn 编译产物profile=dev
# 日志gangyan/logs/backend.log
# 勿在此加 -Dspring.datasource*:与 application-local.yml 打架易连错库
# 若 jar 未重打、内嵌 yml 仍是远程库,必须依赖 backend/application-local.yml含完整 spring 数据源)。
# backend/chat_web_yj.jar同一 jar 的改名副本)及其 application-local.yml 覆盖配置已于 2026-04-20 归档删除
set -u
source "$(cd "$(dirname "$0")" && pwd)/common-restart.sh"
# 默认 backend.log若曾被 root 创建导致当前用户不可写,则改用同目录 backend-<用户>.log(仍在 gangyan/logs 下)
# 默认 backend.log若曾被 root 创建导致当前用户不可写,则改用同目录 backend-<用户>.log
LOG_FILE="$LOG_DIR/backend.log"
if ! ( umask 022; : >>"$LOG_FILE" ) 2>/dev/null; then
ALT="$LOG_DIR/backend-$(id -un).log"
@@ -25,34 +24,41 @@ fi
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"
log_tee "======== 停止 chat_web_yj.jar ========"
pkill -f "chat_web_yj.jar" 2>/dev/null && log_tee "已发送停止信号" || log_tee "未找到运行中的进程"
sleep 2
BACKEND_DIR="$GANGYAN_ROOT/chat_web_backend"
JAR_REL="target/chat_web_backend.jar"
log_tee "======== 启动 chat_web_yj.jar ========"
cd "$GANGYAN_ROOT/backend"
LOCAL_CFG="$GANGYAN_ROOT/backend/application-local.yml"
EXTRA_JAVA_ARGS=()
if [ -f "$LOCAL_CFG" ]; then
log_tee "加载本地配置: $LOCAL_CFG"
EXTRA_JAVA_ARGS=(-Dspring.config.additional-location="file:${LOCAL_CFG}")
if [ ! -f "$BACKEND_DIR/$JAR_REL" ]; then
log_tee "错误: 未找到 $BACKEND_DIR/$JAR_REL。先执行 chat_web_backend/compile.sh 编译。"
exit 1
fi
log_tee "======== 停止 chat_web_backend.jar ========"
pkill -f "target/chat_web_backend.jar" 2>/dev/null && log_tee "已发送停止信号" || log_tee "未找到运行中的进程"
sleep 2
# 端口兜底(非 hawei 启的旧进程 lsof 可能看不到,用 ss 探测)
if ss -tln 2>/dev/null | grep -qE ':8099[[:space:]]'; then
log_tee "8099 仍被占用,再等 3 秒..."
sleep 3
fi
log_tee "======== 启动 chat_web_backend.jar (profile=dev) ========"
cd "$BACKEND_DIR"
nohup java -jar \
-Xms512m -Xmx2048m \
"${EXTRA_JAVA_ARGS[@]}" \
-Dspring.profiles.active=yj \
chat_web_yj.jar >> "$LOG_FILE" 2>&1 &
"$JAR_REL" \
--spring.profiles.active=dev >> "$LOG_FILE" 2>&1 &
STARTED_PID=$!
log_tee "已后台启动PID=$STARTED_PID"
log_tee "Java 标准输出/错误写入: $LOG_FILE"
sleep 3
if kill -0 "$STARTED_PID" 2>/dev/null; then
if command -v ss >/dev/null 2>&1 && ss -tln 2>/dev/null | grep -q ':8099'; then
log_tee "自检: 进程存活且 8099 已监听(后端已就绪或即将就绪)"
if ss -tln 2>/dev/null | grep -qE ':8099[[:space:]]'; then
log_tee "自检: 进程存活且 8099 已监听"
else
log_tee "自检: 进程存活,但 8099 尚未监听(可能仍在启动;10 秒后仍无请 tail 上面日志路径)"
log_tee "自检: 进程存活,但 8099 尚未监听可能仍在启动10 秒后仍无请 tail $LOG_FILE"
fi
else
log_tee "自检失败: 进程已退出。请查看日志末尾:"
log_tee "自检失败: 进程已退出。最近日志:"
tail -n 40 "$LOG_FILE" 2>/dev/null | while IFS= read -r line || [ -n "$line" ]; do log_line "$line"; done
exit 1
fi