#!/usr/bin/env bash # Launch archive extraction detached. Usage: launch_extract.sh [tb|lv178k|all] set -euo pipefail ROOT=/mnt/local-fast/opd_zt cd "$ROOT" source "$ROOT/.env" source "$ROOT/.venv/bin/activate" WHICH=${1:-all} LOG_DIR="$ROOT/logs" mkdir -p "$LOG_DIR" STAMP=$(date +%Y%m%d_%H%M%S) LOG="$LOG_DIR/extract_${WHICH}_${STAMP}.log" PID_FILE="$LOG_DIR/extract_${WHICH}.pid" if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then echo "extract ($WHICH) already running, pid=$(cat "$PID_FILE")" exit 1 fi # 5 workers — extraction is CPU-bound (decompression), 8x H100 box has plenty CPU setsid nohup python "$ROOT/scripts/extract_archives.py" --only "$WHICH" --workers 5 \ > "$LOG" 2>&1 < /dev/null & PID=$! echo "$PID" > "$PID_FILE" ln -sfn "$LOG" "$LOG_DIR/extract_${WHICH}.latest.log" disown $PID || true echo "launched extract ($WHICH), pid=$PID log=$LOG"