728x90
들어가기 앞서
본 문서는 Windows에서 특정 포트가 실행 상태를 확인하고, 해당 포트에서 실행되고 있는 프로세스를 종료하는 방법을 정리합니다.
관련 문서
TL;DR
# 현재 실행되는 프로세스 및 PID를 확인합니다
$ netstat -ano
# 특정 포트(e.g. 8080)만 확인하고 싶은 경우 find 명령어를 함께 사용한다
$ netstat -ano | find "8080"
# 해당 프로세스의 아이디(PID)를 이용하여 프로세스를 종료합니다
$ taskkill /f /pid 22644
배경
개발 도중 사용하고 있던 특정 포트가 종료되지 않아 다시 명령어를 입력했을 때 에러가 발생하는 경우를 한 번씩 겪는다.
(ex. node:3000, django:8080, tomcat:8080)
이번 기회에 윈도우에서 명령 프롬프트(CMD)를 통해 특정 포트가 열려있는지 검색하고 해당 포트를 죽이는 명령어에 대해서 정리하고자 한다.
특정 포트 검색 (netstat -ano)
- 기본 명령어는 netstat 이다.
- 그런데 이렇게 해서는 우리가 원하는 특정 포트가 현재 사용되고 있는지와 taskkill(특정 포트 종료 명령어)을 사용하기 위해서 알아야 할 pid가 나오지 정확히 나오지 않기 때문에 netstat 명령어에 옵션을 붙여준다.
- 다양한 옵션에 대한 설명은 netstat help를 통해 알 수 있다.
- 우리는 netstat -ano를 실행한다.
- -a : 모든 연결 포트 표시
- -n : 주소와 포트 번호를 숫자 형식으로 표시
- -o : 프로세스 ID (PID) 표시
- 로컬에서 개발 중이었다면 굳이 n 옵션은 사용하지 않아도 포트는 확인할 수 있다.
- 우리가 현재 우리가 찾을려는 포트는 3000번 포트이다.
- 3000번 포트를 사용하고 있는 프로세스의 PID는 22644임을 확인할 수 있다.
특정 포트 종료 (taskkill /f /pid [PID])
- PID를 확인했다면 taskkill 명령어를 통해 종료시킬 수 있다.
- taskkill 명령어 또한 다양한 옵션을 가지고 있다. 다양한 옵션에 대해 알고 싶다면 taskkill /?를 통해 확인해보자
- 우리는 taskkill /f /pid [PID]를 통해 특정 포트를 종료하도록 한다.
- /f : 강제 종료
- /pid [PID] : 종료할 프로세스의 PID 지정 - 우리는 pid가 22644인 프로세스를 종료하고자 했기 때문에 taskkill /f /pid 22644를 통해 3000번을 사용하고 있는 프로세스를 종료한다.
- 다시 netstat -ano를 통해 현재 연결 포트를 확인해보자
- 3000번 포트가 말끔히 종료되었다.
- 다시 node를 실행해보면 잘 실행된다.
추가 (find)
- 우리는 특정 포트를 확인할 때 netstat -ano를 통해 포트를 확인했다.
- 사실 이건 비효율적인 명령이다.
- find 명령어와 함께 사용하면 손쉽게 특정 포트를 확인할 수 있다.
- netstat -ano | find "3306"과 같이 명령어를 실행하면 다음과 같이 netstat -ano의 출력 결과 중 "3306"이 포함된 부분만 출력된다.
728x90
'Tip & 잡기술' 카테고리의 다른 글
맥(MacOS)에서 특정 포트 검색 및 종료하기 (lsof, kill) (0) | 2024.06.06 |
---|