46 lines
1.1 KiB
Bash
46 lines
1.1 KiB
Bash
|
|
#!/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进程
|
|||
|
|
UVICORN_PIDS=$(pgrep -f "uvicorn src.api.main")
|
|||
|
|
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
|
|||
|
|
fi
|