Backend · Infra

[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.

    원인:

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

    해결 방법:

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

     

    반응형