#!/bin/bash # 确保使用 bash 运行 if [ -z "$BASH_VERSION" ]; then exec bash "$0" "$@" fi # 颜色定义 GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # 打印带颜色的消息 print_yellow() { printf "${YELLOW}%s${NC}\n" "$1"; } print_green() { printf "${GREEN}%s${NC}\n" "$1"; } print_red() { printf "${RED}%s${NC}\n" "$1"; } print_yellow "=== 停止 7861 和 8501 端口服务 ===" for port in 7861 8501; do pids=$(lsof -t -i:"$port" 2>/dev/null) if [ -n "$pids" ]; then print_yellow "正在停止端口 $port 的进程: $pids" kill -9 $pids 2>/dev/null print_green "端口 $port 已停止" else echo "端口 $port 无运行中的服务" fi done # 也停止所有 startup.py 进程 pids=$(ps aux | grep "[p]ython.*startup.py -a" | awk '{print $2}') if [ -n "$pids" ]; then print_yellow "正在停止 startup.py 进程: $pids" kill -9 $pids 2>/dev/null print_green "startup.py 进程已停止" fi echo "" print_yellow "=== 启动服务 ===" cd /home/gc/gangyan/langchain-chat # 初始化 conda(确保 PATH 中包含 conda 路径) CONDA_INIT="/root/miniconda3/etc/profile.d/conda.sh" if [ -f "$CONDA_INIT" ]; then # 初始化 conda,将 conda 路径添加到 PATH . "$CONDA_INIT" 2>/dev/null || source "$CONDA_INIT" 2>/dev/null fi # 查找 conda 可执行文件(按优先级) if command -v conda &> /dev/null; then CONDA_EXE="conda" elif [ -f "/root/miniconda3/bin/conda" ]; then CONDA_EXE="/root/miniconda3/bin/conda" elif [ -f "/root/miniconda3/condabin/conda" ]; then CONDA_EXE="/root/miniconda3/condabin/conda" else print_red "错误: 未找到 conda 命令" print_red "请检查 conda 是否已安装: /root/miniconda3" exit 1 fi # 使用 conda 环境启动 print_yellow "使用环境: gangyan" print_yellow "日志文件: nohup.out" print_yellow "Conda路径: $CONDA_EXE" # 获取 python 的完整路径 PYTHON_EXE="/root/miniconda3/envs/gangyan/bin/python" if [ ! -f "$PYTHON_EXE" ]; then # 尝试通过 conda run 获取路径 PYTHON_EXE="$($CONDA_EXE run -n gangyan which python 2>/dev/null)" if [ -z "$PYTHON_EXE" ] || [ ! -f "$PYTHON_EXE" ]; then print_red "错误: 无法找到 python 可执行文件" print_red "请检查 conda 环境 gangyan 是否已安装" exit 1 fi fi print_yellow "Python路径: $PYTHON_EXE" # 直接使用 python 完整路径启动(不依赖 conda activate,更可靠) # 设置 PYTHONPATH 确保能正确导入模块 export PYTHONPATH="/home/gc/gangyan/langchain-chat:$PYTHONPATH" cd /home/gc/gangyan/langchain-chat nohup "$PYTHON_EXE" startup.py -a >> nohup.out 2>&1 & PID=$! print_green "服务已启动,PID: $PID" print_yellow "日志文件: /home/gc/gangyan/langchain-chat/nohup.out" print_yellow "查看日志: tail -f nohup.out" # 等待几秒后显示日志 sleep 2 echo "" print_yellow "=== 最近日志 ===" tail -20 nohup.out