2025. 6. 18. 12:41ㆍ환결 설정 관련 오류 처리 정리
Windows에서 포트 사용 현황 확인 및 프로세스 종료하기
리눅스와는 달리 Windows에서는 netstat 명령어를 사용할 때 옵션이 다르고, sudo 명령어는 기본적으로 사용할 수 없습니다. Windows 환경에서 19200번 포트나 다른 포트를 사용하는 프로세스를 찾고 종료하는 방법
1. 포트 사용 현황 확인 (Windows)
Windows에서는 netstat -ano 명령어를 주로 사용합니다. 이 명령어는 모든 활성 연결과 수신 대기 포트, 그리고 해당 연결을 사용하고 있는 프로세스의 **PID(프로세스 ID)**를 보여줍니다.
- 명령 프롬프트 또는 PowerShell 관리자 권한으로 실행:
- 시작 메뉴에서 "cmd" 또는 "powershell"을 검색합니다.
- 검색 결과에서 "명령 프롬프트" 또는 "Windows PowerShell"을 마우스 오른쪽 버튼으로 클릭한 다음 **"관리자 권한으로 실행"**을 선택합니다.
- 명령어 실행:
- -a: 모든 연결 및 수신 대기 포트를 표시합니다.
- -n: 주소와 포트 번호를 숫자로 표시합니다.
- -o: 각 연결에 대한 소유 프로세스 ID(PID)를 표시합니다.
- findstr :[포트번호]: 특정 포트 번호가 포함된 줄만 필터링합니다. (리눅스의 grep과 유사합니다.)
- 이용하는 포트 찾기
netstat -ano | findstr :19200 netstat -ano | findstr :19100
- netstat -ano | findstr :19200
이 명령어를 실행하면 다음과 비슷한 결과가 나옵니다:
TCP 0.0.0.0:19200 0.0.0.0:0 LISTENING 12345
여기서 마지막 열의 12345가 해당 포트를 사용하고 있는 프로세스의 PID입니다.
2. 프로세스 종료 (Windows)
PID를 확인했다면, taskkill 명령어를 사용하여 해당 프로세스를 종료할 수 있습니다.
- 명령 프롬프트 또는 PowerShell 관리자 권한으로 실행
- 명령어 실행:
- /PID [PID]: 종료할 프로세스의 PID를 지정합니다.
- /F: 프로세스를 강제로 종료합니다. (저장되지 않은 데이터가 손실될 수 있으므로 주의해서 사용하세요.)
-
taskkill /PID 12345 /F
taskkill /PID [PID] /F
3. 작업 관리자를 통한 프로세스 종료
명령어가 익숙하지 않다면, Windows 작업 관리자를 통해서도 프로세스를 종료할 수 있습니다.
- 작업 관리자 열기: Ctrl + Shift + Esc 키를 누르거나, 작업 표시줄을 마우스 오른쪽 버튼으로 클릭하여 "작업 관리자"를 선택합니다.
- "세부 정보" 탭으로 이동: "프로세스" 탭에서 해당 프로세스를 찾기 어렵다면 "세부 정보" 탭으로 이동합니다.
- PID 정렬 및 찾기: "PID" 열을 클릭하여 프로세스를 PID 순으로 정렬합니다. 위에서 netstat으로 확인한 PID를 찾아 해당 프로세스를 선택합니다.
- "작업 끝내기" 클릭: 선택한 프로세스를 마우스 오른쪽 버튼으로 클릭하거나 하단의 "작업 끝내기" 버튼을 클릭하여 종료합니다.
요약: Windows 환경에서 포트 끄는 방법
- 관리자 권한으로 명령 프롬프트 또는 PowerShell 실행.
- netstat -ano | findstr :[포트번호] 명령어를 사용하여 포트(예: 19200)를 사용하는 프로세스의 PID를 확인합니다.
- 예시: netstat -ano | findstr :19200
- 확인된 PID를 사용하여 taskkill /PID [PID] /F 명령어로 프로세스를 종료합니다.
- 예시: taskkill /PID 12345 /F
이 방법을 사용하면 Windows 환경에서 특정 포트를 사용하는 프로세스를 정확하게 찾고 종료할 수 있습니다.
MINGW64 (Git Bash)에서 taskkill 오류 해결하기
오류: 잘못된 인수/옵션 - 'C:/Program Files/Git/PID'.는 MINGW64 (Git Bash) 환경에서 Windows 명령어인 taskkill을 사용할 때 인자(옵션)를 잘못 해석해서 발생함.
MINGW64는 리눅스 터미널처럼 작동하려고 하는데, 리눅스에서는 /로 시작하는 것이 파일 경로일 가능성이 높습니다. 그래서 taskkill이 요구하는 /PID나 /F 같은 Windows 스타일의 옵션을 MINGW64가 경로로 착각해서 생기는 문제입니다.
이 문제를 해결하는 가장 간단한 방법은 옵션 앞에 슬래시(/)를 한 번 더 붙여서 //PID처럼 사용하는 것입니다.
taskkill //PID 9952 //F
이 명령어가 제대로 작동!