KICCO_AI_IMAGE/start_flux_api.sh

77 lines
1.9 KiB
Bash
Raw Normal View History

2025-04-25 09:13:50 +08:00
#!/bin/bash
2025-05-02 20:39:30 +08:00
# 虚拟环境路径 - 使用当前目录下的venv
VENV_PATH="$(pwd)/venv"
# 配置参数
BASE_PORT=8001 # 起始端口号
2025-05-06 21:48:23 +08:00
GPU_COUNT=3 # 默认使用的GPU数量
2025-05-02 20:39:30 +08:00
SCRIPT_PATH="flux_style_shaper_api/flux_style_shaper_api.py" # 服务脚本路径
2025-05-06 21:48:23 +08:00
GPU_IDS=(1 2 3) # 指定要使用的GPU ID
2025-05-02 20:39:30 +08:00
# 处理命令行参数
while [[ $# -gt 0 ]]; do
case $1 in
--gpus)
GPU_COUNT="$2"
shift 2
;;
--base-port)
BASE_PORT="$2"
shift 2
;;
*)
echo "未知参数: $1"
echo "用法: $0 [--gpus 数量] [--base-port 起始端口]"
exit 1
;;
esac
done
2025-04-25 10:00:34 +08:00
# 激活虚拟环境
echo "正在激活Python虚拟环境..."
source "$VENV_PATH/bin/activate"
# 检查虚拟环境是否成功激活
if [ $? -ne 0 ]; then
echo "错误: 无法激活虚拟环境,请检查路径: $VENV_PATH"
exit 1
fi
echo "已激活虚拟环境: $(which python3)"
2025-04-25 09:13:50 +08:00
# 创建日志目录
mkdir -p logs
2025-05-02 20:39:30 +08:00
# 启动多个实例
declare -a INSTANCE_PIDS
for ((i=0; i<$GPU_COUNT; i++)); do
2025-05-03 15:49:05 +08:00
GPU_ID=${GPU_IDS[$i]}
2025-05-02 20:39:30 +08:00
CURRENT_PORT=$((BASE_PORT + i))
2025-05-03 15:49:05 +08:00
echo "启动 GPU $GPU_ID 上的服务实例,端口$CURRENT_PORT..."
CUDA_VISIBLE_DEVICES=$GPU_ID nohup python3 $SCRIPT_PATH --port $CURRENT_PORT > logs/flux_api_gpu$GPU_ID.log 2>&1 &
2025-05-02 20:39:30 +08:00
INSTANCE_PIDS[$i]=$!
2025-05-03 15:49:05 +08:00
echo "GPU $GPU_ID 服务已启动进程ID: ${INSTANCE_PIDS[$i]}"
2025-05-02 20:39:30 +08:00
done
2025-04-25 10:00:34 +08:00
echo "所有服务实例已启动!"
echo "可以通过以下地址访问服务:"
2025-05-02 20:39:30 +08:00
# 获取本机IP
HOST_IP=$(hostname -I | awk '{print $1}')
# 显示所有服务地址
for ((i=0; i<$GPU_COUNT; i++)); do
2025-05-03 15:49:05 +08:00
GPU_ID=${GPU_IDS[$i]}
2025-05-02 20:39:30 +08:00
CURRENT_PORT=$((BASE_PORT + i))
2025-05-03 15:49:05 +08:00
echo " - 实例$((i+1)): http://$HOST_IP:$CURRENT_PORT (GPU $GPU_ID)"
2025-05-02 20:39:30 +08:00
done
echo "查看日志:"
2025-05-02 20:39:30 +08:00
for ((i=0; i<$GPU_COUNT; i++)); do
2025-05-03 15:49:05 +08:00
GPU_ID=${GPU_IDS[$i]}
echo " tail -f logs/flux_api_gpu$GPU_ID.log"
2025-05-02 20:39:30 +08:00
done
2025-04-25 10:00:34 +08:00
# 保持虚拟环境激活状态
# deactivate