#!/bin/bash # 사용자 Chrome을 CDP 디버깅 포트(9222)로 기동한다. # PM2(sundol-chrome)가 관리하는 전용 스크립트이므로 수동 실행 금지. # 봇 판정 우회를 위해 사용자 로그인 세션이 담긴 기존 프로필을 그대로 사용한다. set -u export DISPLAY=:1 PROFILE_DIR="/home/opc/.config/google-chrome-cdp" DEBUG_PORT=9222 # 1) 동일 프로필을 쓰는 기존 Chrome 종료. # 같은 user-data-dir로 Chrome이 이미 떠 있으면 새 인스턴스는 # 디버깅 포트를 열지 못하고 기존 인스턴스에 명령만 전달하고 끝난다. pkill -TERM -f "/opt/google/chrome/chrome" 2>/dev/null || true for _ in $(seq 1 10); do pgrep -f "/opt/google/chrome/chrome" >/dev/null 2>&1 || break sleep 1 done pkill -KILL -f "/opt/google/chrome/chrome" 2>/dev/null || true sleep 1 # 2) 비정상 종료로 남은 stale 싱글톤 락 정리. rm -f "$PROFILE_DIR/SingletonLock" \ "$PROFILE_DIR/SingletonCookie" \ "$PROFILE_DIR/SingletonSocket" 2>/dev/null || true # 3) Chrome 기동. exec로 foreground 유지 → PM2 fork 모드가 프로세스를 추적. # --remote-debugging-address=127.0.0.1 로 IPv4 바인딩을 명시한다. exec /usr/bin/google-chrome \ --user-data-dir="$PROFILE_DIR" \ --remote-debugging-port="$DEBUG_PORT" \ --remote-debugging-address=127.0.0.1 \ --no-first-run \ --no-default-browser-check \ --start-maximized