feat: add Linux deployment scripts (deploy/start/stop/run_eval)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
68
stop.sh
Normal file
68
stop.sh
Normal file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
# stop.sh — 停止 Siemens RAGAS 后台 Web 服务
|
||||
# 用法:bash stop.sh
|
||||
|
||||
set -uo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# ── 颜色输出 ──────────────────────────────────────────────────────
|
||||
if [ -t 1 ]; then
|
||||
GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; CYAN='\033[0;36m'; NC='\033[0m'
|
||||
else
|
||||
GREEN=''; YELLOW=''; RED=''; CYAN=''; NC=''
|
||||
fi
|
||||
|
||||
ok() { echo -e "${GREEN}[OK]${NC} $*"; }
|
||||
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
||||
err() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
|
||||
|
||||
echo ""
|
||||
echo -e "${CYAN} Siemens RAGAS Console — 停止服务${NC}"
|
||||
echo ""
|
||||
|
||||
PID_FILE="$SCRIPT_DIR/.server.pid"
|
||||
|
||||
if [ ! -f "$PID_FILE" ]; then
|
||||
warn "未找到 .server.pid,服务可能未启动或已停止"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
PID=$(cat "$PID_FILE")
|
||||
|
||||
if ! kill -0 "$PID" 2>/dev/null; then
|
||||
warn "进程 $PID 已不存在,清理 PID 文件"
|
||||
rm -f "$PID_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 优雅停止(SIGTERM)
|
||||
echo -e " 正在停止进程 (PID=$PID)..."
|
||||
kill "$PID" 2>/dev/null || true
|
||||
|
||||
# 等待最多 5 秒
|
||||
for i in 1 2 3 4 5; do
|
||||
sleep 1
|
||||
if ! kill -0 "$PID" 2>/dev/null; then
|
||||
break
|
||||
fi
|
||||
echo -e " 等待进程退出... ($i/5)"
|
||||
done
|
||||
|
||||
# 若进程仍存在,强制终止
|
||||
if kill -0 "$PID" 2>/dev/null; then
|
||||
warn "进程未响应,强制终止 (SIGKILL)..."
|
||||
kill -9 "$PID" 2>/dev/null || true
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
rm -f "$PID_FILE"
|
||||
|
||||
if kill -0 "$PID" 2>/dev/null; then
|
||||
err "无法停止进程 $PID,请手动执行:kill -9 $PID"
|
||||
exit 1
|
||||
else
|
||||
ok "服务已停止"
|
||||
echo ""
|
||||
fi
|
||||
Reference in New Issue
Block a user