SD1.5-LLM8850 / sd-launch.sh
LittleMouse
Add File
244baf9
#!/bin/bash
# /opt/sd-launch.sh
# 复制你手动运行时的完整环境变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/opt/lib:/soc/lib:$LD_LIBRARY_PATH
export PYTHONPATH=$PYTHONPATH
export DISPLAY=:0
# 等待系统完全启动
sleep 15
# 日志目录
LOG_DIR="/var/log/sd-launch"
mkdir -p "$LOG_DIR"
echo "Starting SD services at $(date)" >> "$LOG_DIR/startup.log"
# 1. 启动后端
cd /root/Desktop/SD1.5-AX650-Dark_Sushi_Mix
echo "Starting backend..." >> "$LOG_DIR/startup.log"
# 直接用 uvicorn 而不是 nohup,让脚本保持运行
uvicorn api_10steps:app --host 0.0.0.0 --port 7888 > "$LOG_DIR/backend.log" 2>&1 &
BACKEND_PID=$!
echo $BACKEND_PID > "$LOG_DIR/backend.pid"
# 等待后端启动
sleep 10
if ! kill -0 $BACKEND_PID 2>/dev/null; then
echo "Backend failed to start" >> "$LOG_DIR/startup.log"
exit 1
fi
# 2. 启动前端
cd /root/Desktop/SD1.5-AX650-Dark_Sushi_Mix/client
echo "Starting frontend..." >> "$LOG_DIR/startup.log"
python3 app.py > "$LOG_DIR/frontend.log" 2>&1 &
FRONTEND_PID=$!
echo $FRONTEND_PID > "$LOG_DIR/frontend.pid"
# 3. 等待前端端口就绪
echo "Waiting for frontend..." >> "$LOG_DIR/startup.log"
for i in {1..30}; do
if curl -s http://localhost:5000/ >/dev/null 2>&1; then
break
fi
sleep 2
done
# 4. 打开浏览器并全屏
echo "Opening browser..." >> "$LOG_DIR/startup.log"
# 等待图形界面完全就绪
sleep 5
# 确保 DISPLAY 正确设置
export DISPLAY=:0
echo "DISPLAY=$DISPLAY" >> "$LOG_DIR/startup.log"
echo "Current user: $(whoami)" >> "$LOG_DIR/startup.log"
# 直接使用 Firefox kiosk 模式
if command -v firefox >/dev/null 2>&1; then
echo "Starting Firefox in kiosk mode..." >> "$LOG_DIR/startup.log"
firefox --kiosk http://localhost:5000/ >> "$LOG_DIR/browser.log" 2>&1 &
BROWSER_PID=$!
echo "Firefox started with PID: $BROWSER_PID" >> "$LOG_DIR/startup.log"
# 验证浏览器进程是否启动成功
sleep 3
if kill -0 $BROWSER_PID 2>/dev/null; then
echo "Firefox process confirmed running" >> "$LOG_DIR/startup.log"
else
echo "Firefox process failed to start" >> "$LOG_DIR/startup.log"
cat "$LOG_DIR/browser.log" >> "$LOG_DIR/startup.log"
fi
else
echo "Firefox not found" >> "$LOG_DIR/startup.log"
fi