49 lines
1.2 KiB
Bash
49 lines
1.2 KiB
Bash
#!/bin/bash
|
||||
|
|
# BBAV20311 服务启动脚本 - 带自动重启
|
|||
|
|
|
|||
|
|
PROJECT_DIR="/home/xzq/5090/PlantAI-dev4090-7/PlantAI-dev"
|
|||
|
|
LOG_FILE="/tmp/bbav5_vue3.log"
|
|||
|
|
PID_FILE="/tmp/bbav5_vue3.pid"
|
|||
|
|
|
|||
|
|
cd "$PROJECT_DIR/apps/web/vue3"
|
|||
|
|
|
|||
|
|
# 如果服务已在运行,先停止
|
|||
|
|
if [ -f "$PID_FILE" ]; then
|
|||
|
|
OLD_PID=$(cat "$PID_FILE")
|
|||
|
|
if ps -p "$OLD_PID" > /dev/null 2>&1; then
|
|||
|
|
echo "停止旧服务 (PID: $OLD_PID)..."
|
|||
|
|
kill "$OLD_PID" 2>/dev/null
|
|||
|
|
sleep 2
|
|||
|
|
fi
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 清理日志
|
|||
|
|
echo "=== 服务启动 $(date) ===" > "$LOG_FILE"
|
|||
|
|
|
|||
|
|
# 启动服务并监控
|
|||
|
|
while true; do
|
|||
|
|
echo "启动服务..."
|
|||
|
|
python3 main.py >> "$LOG_FILE" 2>&1 &
|
|||
|
|
PID=$!
|
|||
|
|
echo $PID > "$PID_FILE"
|
|||
|
|
|
|||
|
|
echo "服务已启动,PID: $PID"
|
|||
|
|
|
|||
|
|
# 等待服务退出
|
|||
|
|
wait $PID
|
|||
|
|
EXIT_CODE=$?
|
|||
|
|
|
|||
|
|
echo "服务退出,退出码: $EXIT_CODE,$(date)" >> "$LOG_FILE"
|
|||
|
|
|
|||
|
|
# 检查是否是正常停止(SIGTERM = 143, SIGINT = 130)
|
|||
|
|
if [ $EXIT_CODE -eq 0 ] || [ $EXIT_CODE -eq 130 ] || [ $EXIT_CODE -eq 143 ]; then
|
|||
|
|
echo "服务正常停止,不重启"
|
|||
|
|
break
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "服务异常退出,5秒后重启..."
|
|||
|
|
sleep 5
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
rm -f "$PID_FILE"
|