| # 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" | |