Server

[Windows] 특정 포트 사용 프로세스 종료하기

devhyen 2024. 8. 8. 09:15

 

문제상황 🤔

개발 중 인텔리제이에서 서버 종료를 했음에도 불구하고 해당 포트가 여전히 사용중이라 종료해야 했다. 

 

해결방법 🛠️

1. 명령 프롬프트 실행 

단축키: Win+R 입력 후, cmd 입력하여 실행

 

2. 현재 사용중인 포트 확인

netstat -ano | findstr: 8080

 

- 8080 : 확인하려는 포트 번호 

- 출력 예시 

TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       1234

 

- 1234 : 해당 포트를 사용중인 프로세스 ID(PID)

 

3. pid를 확인하여 프로세스 종료

taskkill /f /pid 1234

 

- /F : 강제 종료 옵션

- 1234 : 종료하려는 프로세스의 PID

 


위 방법을 통해 해당 프로세스를 찾아 종료해서 문제를 해결했습니다. 

 

자주 발생하여

PowerShell을 활용한 자동화 스크립트를 공유드립니다. 

 

$port = 8080; $processId = (netstat -aon | Select-String ":$port" | Select-String "LISTENING" | ForEach-Object { $_ -replace ".*\s(\d+)$", '$1' }); if ($processId) { Stop-Process -Id $processId -Force } else { Write-Output "No process found using port $port" }

 

 

  • $port: 종료하려는 포트 번호
  • Get-NetTCPConnection: 현재 TCP 연결 정보를 가져옴
  • Stop-Process: 해당 PID의 프로세스를 종료

주의:

  • PowerShell을 관리자 권한으로 실행해야 합니다.
  • Windows 10 이상에서 사용 가능합니다.

 

 


위 방법 중 발생 할 수 있는 오류와 해결 방법

 

🔹 오류 1: Access is denied.

원인:

  • 명령 프롬프트 또는 PowerShell이 관리자 권한으로 실행되지 않음

해결 방법:

  • 명령 프롬프트 또는 PowerShell을 관리자 권한으로 실행합니다.
    • 방법: 시작 메뉴에서 cmd 또는 PowerShell 검색 후, 우클릭하여 '관리자 권한으로 실행' 선택

🔹 오류 2: No process found using port 8080.

원인:

  • 해당 포트를 사용하는 프로세스가 이미 종료되었거나 존재하지 않음

해결 방법:

  • 포트 번호를 확인하고, 올바른지 재확인합니다.
  • 다른 포트를 사용 중인 프로세스가 문제를 일으키는지 확인합니다.