2026-04-28 11:29:33 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
# stop_api.sh - 停止API服务
|
|
|
|
|
|
|
|
|
|
|
|
PID_FILE=logs/api.pid
|
|
|
|
|
|
|
|
|
|
|
|
echo "========================================"
|
|
|
|
|
|
echo "停止 AI+合规智能中枢 API服务"
|
|
|
|
|
|
echo "========================================"
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
|
|
if [ -f "$PID_FILE" ]; then
|
|
|
|
|
|
PID=$(cat $PID_FILE)
|
|
|
|
|
|
|
|
|
|
|
|
if ps -p $PID > /dev/null 2>&1; then
|
|
|
|
|
|
echo "正在停止服务 (PID: $PID)..."
|
|
|
|
|
|
kill $PID
|
|
|
|
|
|
|
|
|
|
|
|
# 等待进程结束
|
|
|
|
|
|
sleep 2
|
|
|
|
|
|
|
|
|
|
|
|
if ps -p $PID > /dev/null 2>&1; then
|
|
|
|
|
|
echo "进程未响应,强制终止..."
|
|
|
|
|
|
kill -9 $PID
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
rm -f $PID_FILE
|
|
|
|
|
|
echo "服务已停止"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "进程已不存在,清理PID文件"
|
|
|
|
|
|
rm -f $PID_FILE
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "PID文件不存在,服务可能未运行"
|
|
|
|
|
|
|
|
|
|
|
|
# 尝试查找并停止所有uvicorn进程
|
2026-05-14 15:07:34 +08:00
|
|
|
|
UVICORN_PIDS=$(pgrep -f "uvicorn app.main:app")
|
2026-04-28 11:29:33 +08:00
|
|
|
|
if [ -n "$UVICORN_PIDS" ]; then
|
|
|
|
|
|
echo "发现运行中的uvicorn进程: $UVICORN_PIDS"
|
|
|
|
|
|
echo "是否停止这些进程? (y/n)"
|
|
|
|
|
|
read -r answer
|
|
|
|
|
|
if [ "$answer" = "y" ]; then
|
|
|
|
|
|
kill $UVICORN_PIDS
|
|
|
|
|
|
echo "进程已停止"
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
2026-05-14 15:07:34 +08:00
|
|
|
|
fi
|