Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

포트를 사용 중인 프로세스 종료하는 방법 (Windows, Mac, Linux)

애플리케이션은 서버와 데이터를 주고받기 위해 포트(Port)를 사용합니다. 모든 애플리케이션은 통신을 위해 특정 포트를 사용하며, 이러한 포트는 프로그램 설치 시 자동으로 또는 수동으로 열립니다. 때때로 개발이나 서버 관리 과정에서 특정 포트가 이미 사용 중이라는 오류를 마주하게 되는데, 이럴 때 해당 포트를 점유하고 있는 프로세스를 강제로 종료해야 합니다.

모든 애플리케이션이 고유한 포트를 사용하기 때문에, 운영체제에 특정 포트를 사용 중인 프로세스를 찾아 종료하도록 요청할 수 있습니다. 이번 글에서는 운영체제별로 포트 기반 프로세스를 종료하는 방법을 자세히 알아보겠습니다.

포트별 프로세스 종료 전 확인 사항

특정 포트로 통신 중인 애플리케이션은 간단한 명령어만으로 종료할 수 있습니다. 다만 몇 가지 주의할 점이 있습니다.

  • 운영체제마다 사용하는 명령어가 다르므로 자신의 환경에 맞는 방법을 사용해야 합니다.
  • 대부분의 경우 관리자(Administrator) 권한이 필요합니다.
  • 종료하기 전에 해당 포트를 사용하는 다른 중요한 애플리케이션이 없는지 반드시 확인하세요.

Mac 및 Linux에서 포트별 프로세스 종료하기

  1. 터미널(Terminal)을 열고 root 사용자로 로그인되어 있는지 확인합니다.
  2. 다음 명령어를 입력하고 실행하여 특정 포트에서 수신 대기 중인 프로세스 목록을 확인합니다.
    lsof -i:(포트번호)
  3. 해당 포트 번호로 통신 중인 프로세스를 종료하려면 아래 명령어를 입력하고 실행합니다.
    kill $(lsof -t -i:"포트번호")
  4. 위 명령어는 높은 권한으로 실행 중인 애플리케이션에는 적용되지 않을 수 있습니다. 이 경우 다음 명령어를 사용하면 특정 포트로 통신 중인 프로세스를 강제로 즉시 종료할 수 있습니다.
    kill -9 $(lsof -t -i:"포트번호")
  5. 명령어 실행 후 지정된 포트 번호를 사용하던 모든 프로세스가 즉시 종료됩니다.

참고: kill과 kill -9의 차이

kill은 프로세스에 정상 종료 신호(SIGTERM)를 보내 데이터를 안전하게 저장한 후 종료할 시간을 주는 반면, kill -9는 강제 종료 신호(SIGKILL)를 보내 즉시 프로세스를 중단시킵니다. 가능하면 일반 kill을 먼저 시도하고, 응답이 없을 때 -9 옵션을 사용하는 것이 좋습니다.

Windows에서 포트별 프로세스 종료하기

  1. Windows + R 키를 동시에 눌러 실행(Run) 창을 엽니다.
  2. cmd를 입력한 뒤 Shift + Ctrl + Enter를 눌러 명령 프롬프트를 관리자 모드로 실행합니다.
  3. 다음 명령어를 입력하여 특정 포트로 통신 중인 프로세스를 조회합니다.
    netstat -ano | findstr :<포트번호>
  4. 실행 결과에서 해당 포트를 사용 중인 프로그램의 PID(프로세스 ID)를 확인하고 메모해 둡니다. PID는 출력 결과의 마지막 열에 표시됩니다.
  5. 해당 포트를 사용하는 프로세스를 종료하려면 아래 명령어를 입력하고 Enter 키를 누릅니다.
    taskkill /PID <PID번호> /F
  6. 명령어가 성공적으로 실행되면 "성공: PID XXXX인 프로세스가 종료되었습니다."라는 메시지와 함께 프로그램이 즉시 종료됩니다.

마무리

포트 충돌은 웹 서버, 데이터베이스, 개발 환경 구축 시 자주 발생하는 문제입니다. 위 방법을 활용하면 어떤 프로세스가 포트를 점유하고 있는지 빠르게 파악하고 종료할 수 있습니다. 단, 시스템 필수 프로세스를 잘못 종료하면 운영체제가 불안정해질 수 있으므로, 종료 전에 프로세스 이름을 반드시 확인하는 습관을 들이는 것이 좋습니다.