크롬 원격 디버깅 포트 충돌, PID 확인 후 프로세스 트리 종료법
Windows에서 크롬 원격 디버깅 포트가 이미 사용 중이라고 나와도 chrome.exe 전체를 이름으로 종료하지 마세요. 로컬 컴퓨터에서 그 포트를 실제로 기다리고 있는 LISTENING PID를 찾고, 실행 명령줄의 포트와 전용 프로필 폴더가 모두 내 설정과 맞을 때만 그 프로세스 트리를 종료하면 됩니다.
아래 기준은 2026-07-29에 Microsoft의 Windows 명령 문서와 Chrome 공식 변경 안내를 대조한 결과예요. 실제 PID와 프로필 경로, 로그인 상태는 컴퓨터마다 다르므로 화면에 나온 값을 직접 확인해야 합니다.
포트를 잡은 LISTENING PID만 고릅니다
검색 결과의 마지막 숫자를 아무 줄에서나 고르면 안 됩니다. 대상 포트가 로컬 주소 열에 있고, 상태 열이 LISTENING인 행의 마지막 PID만 다음 확인 대상으로 삼으세요.
netstat -ano | findstr :<포트번호>
findstr는 대상 포트가 들어간 줄을 좁혀 볼 때만 씁니다. netstat 표에는 로컬 주소와 상대 주소가 함께 나오므로, 대상 포트가 상대 주소 열에만 있거나 상태가 ESTABLISHED인 행은 원격 디버깅 포트를 열어 둔 행으로 고르면 안 됩니다. Microsoft netstat 문서에 따르면 -a는 연결과 수신 대기 포트를, -n은 주소와 포트를 숫자로, -o는 관련 PID를 표시합니다.
후보 PID가 하나보다 많다면 어느 하나를 짐작으로 고르지 말고 각각 다음 단계로 확인하세요. 우선 프로세스 이름은 아래처럼 좁혀 볼 수 있습니다.
tasklist /fi "PID eq <PID>"
Microsoft tasklist 문서는 PID에 eq 필터를 적용하는 문법을 안내합니다. 결과가 없으면 종료 명령을 내리지 말고 netstat 조회부터 다시 하세요.
종료하기 전에 실행 명령줄로 소유권을 확인합니다
프로세스 이름이 chrome.exe라는 사실만으로는 부족합니다. 같은 이름의 개인용 크롬과 자동화용 크롬을 구분하려면 그 PID가 어떤 옵션과 경로로 시작됐는지 확인해야 해요.
Get-CimInstance -ClassName Win32_Process -Filter "ProcessId=<PID>" | Select-Object ProcessId,Name,ExecutablePath,CommandLine
Microsoft Get-CimInstance 문서에는 Win32_Process를 -Filter로 조회하는 방법이 나옵니다. Win32_Process 공식 문서에서는 CommandLine을 프로세스를 시작한 명령줄, ExecutablePath를 실행 파일 경로로 설명합니다.
종료해도 되는 후보는 세 가지가 모두 확인된 경우예요.
- Name과 ExecutablePath가 내가 실행한 크롬을 가리킵니다.
- CommandLine의 --remote-debugging-port 값이 충돌한 포트와 같습니다.
- CommandLine의 --user-data-dir 값이 내가 만든 자동화 전용 폴더와 같습니다.
CommandLine이나 ExecutablePath가 비어 있거나 조회가 거부되면 소유권을 확인한 것이 아닙니다. 특히 ExecutablePath에는 공식 문서상 디버그 권한 조건이 붙습니다. 값을 보지 못했거나 포트와 전용 폴더 중 하나라도 다르면 종료하지 마세요.
확인된 PID와 자식 프로세스만 종료합니다
소유권이 확인됐으면 이미지 이름이 아니라 PID를 지정합니다. /t를 붙이면 한 PID만 끝나는 것이 아니라 그 PID와 그 프로세스가 시작한 자식 프로세스까지 종료됩니다.
taskkill /pid <PID> /t
Microsoft taskkill 문서는 /pid가 종료할 프로세스 ID를 지정하고 /t가 해당 프로세스와 그 자식 프로세스를 종료한다고 설명합니다. 따라서 정확한 표현은 PID 하나만 종료가 아니라 확인한 프로세스 트리를 종료하는 것입니다.
다른 크롬 창이 별도 프로세스 트리에 있으면 이 명령의 /t 대상은 아니지만, 같은 트리에 묶인 창은 함께 닫힐 수 있습니다. 그래서 다른 창의 유지 여부를 단정할 수 없고, 앞 단계의 명령줄 대조가 필요합니다. /f는 강제 종료 옵션이므로 기본 명령에는 넣지 말고, 다시 소유권을 확인한 뒤 강제 종료가 필요한 경우에만 판단하세요.
포트가 비었는지 확인한 뒤 전용 프로필로 다시 엽니다
종료 명령이 끝났다고 바로 새 크롬을 띄우지 마세요. 같은 netstat 명령을 다시 실행해 로컬 주소가 대상 포트이고 LISTENING인 행이 사라졌는지 확인합니다. 그대로 남아 있다면 새 인스턴스를 겹쳐 띄우지 말고 표시된 PID의 소유권 확인으로 돌아가세요.
Chrome 136부터는 재기동 조건도 달라졌습니다. Chrome 공식 변경 안내에 따르면 기본 Chrome 데이터 폴더를 디버깅하려고 하면 --remote-debugging-port와 --remote-debugging-pipe가 적용되지 않습니다. 원격 디버깅 포트에는 기본 폴더가 아닌 별도 폴더를 가리키는 --user-data-dir을 함께 써야 합니다.
chrome.exe --remote-debugging-port=<포트번호> --user-data-dir="<기본 데이터 폴더가 아닌 전용 폴더>"
다시 연 뒤에는 netstat에서 대상 포트의 LISTENING 행이 생겼는지 확인하고, 자동화가 사용하는 사이트도 직접 열어 로그인 상태를 확인하세요. 포트가 열렸다는 사실만으로 로그인까지 확인된 것은 아닙니다. 로그인이 풀려 있으면 같은 전용 프로필에서 다시 로그인한 뒤 작업을 시작하면 됩니다.
2026-07-29에 확인한 공식 근거와 적용 한계
Windows 명령의 범위는 Microsoft의 netstat, tasklist, taskkill, Get-CimInstance, Win32_Process 문서에서 대조했고, Chrome 136 이후 조건은 Chrome for Developers의 원격 디버깅 변경 안내에서 확인했습니다.
- netstat 명령과 출력 열
- tasklist PID 필터
- taskkill /pid·/t·/f
- Get-CimInstance 필터 조회
- Win32_Process 속성과 권한 조건
- Chrome 136 원격 디버깅 변경
이 절차는 로컬 Windows 컴퓨터의 일반 Chrome을 기준으로 합니다. 실제 PID, 프로세스 트리, 조회 권한, 프로필 경로와 로그인 유지 여부는 공식 문서만으로 대신 확인할 수 없으므로 독자 환경에서 직접 대조해야 합니다.
댓글
댓글 쓰기
질문은 자유롭게 남겨주세요. 광고성 댓글, 비방, 개인정보가 포함된 댓글은 삭제될 수 있습니다.