Chrome 136+가 기본 프로필 디렉토리에서 원격 디버깅(CDP)을 거부하여 4월 13일 이후 웹크롤링 3차 폴백/유튜브 자막 추출이 전부 실패하던 문제 해결. - 프로필을 non-default 디렉토리(~/.config/google-chrome-cdp)로 이동해 로그인 세션 유지한 채 CDP 허용 - start-chrome.sh 신규: 기존 Chrome 정리 + stale lock 제거 후 --remote-debugging-port=9222 --remote-debugging-address=127.0.0.1 로 기동 - ecosystem.config.cjs: sundol-chrome PM2 앱 추가 (수동 실행 금지, PM2 통일) ※ frontend script의 /usr/local/bin/node 변경은 이전 작업분이 함께 포함됨 - PlaywrightBrowserService: CDP_URL을 127.0.0.1로 고정 (IPv6 ::1 해석 함정 제거) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
36 lines
1.4 KiB
Bash
Executable File
36 lines
1.4 KiB
Bash
Executable File
#!/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
|