CMD 포트 죽이기 - CMD poteu jug-igi

윈도우 관리자 모드 cmd에서 사용 중인 포트 kill

cmd 창에서 taskkill 명령어 실행 시 액세스가 거부되었다는 문구가 뜨면 관리자 모드로 실행했을 때는 된다고 한다.

근데 나는 안 된다. 😡

/pid 대신 /im으로 성공하긴 했는데 java.exe 녀석은 대체 무엇이었을까.....

현재 사용 중인 프로그램 포트와 PID 값 확인

netstat -ano

-a : 모든 포트 표시

-n : IP주소:포트 형태로 표시

-o : PID 표시

특정 포트를 사용 중인 프로세스 확인

netstat -ano | findstr [포트번호]

-ano는 필수로 입력할 필요는 없지만 작성 시 눈으로 보기에 편리하다.

위 명령어 사용 시 해당 포트 번호를 사용 중인 프로세스의 PID 값을 알아낼 수 있다.

특정 PID 값을 사용 중인 프로세스명 확인

tasklist | findstr [PID]

특정 프로세스 죽이기

※ taskkill 명령어에서 /pid 사용 시 죽이는 번호는 포트 번호가 아닌 PID 값

taskkill /f /pid [PID]
taskkill /f /t /im [프로세스명]
taskkill /f /t /im java.exe

/f : 강제 종료

/t : 자식 프로세스도 함께 종료

/pid 사용 시 PID 값을 입력해야 하고, /im 사용 시 프로세스명을 입력하면 된다.

Programming 2017. 8. 10. 14:30

netstat

: 실행중인 port 찾기

netstat -a -o 

: 실행중인 port 표시, 프로세스id(pid) 표시

taskkill /f /pid 1234

: 1234 프로세스id(pid) kill하기

'Programming' 카테고리의 다른 글

[Error 해결] setting build path has encountered a problem could not write file 해결방법  (0)2016.03.30
[OpenGL] x64환경에서 "glut32.dll이(가) 없어 프로그램을 시작할 수 없습니다. 해결방법"  (8)2012.04.19
[ShapGL]C#에서 [OpenGL 사용하기 - ShapGL  (0)2012.04.09
객체 직렬화(Serializable) - 수정-  (0)2012.04.06

Posted by 킬로호텔

, 댓글 1개가 달렸습니다

댓글을 달아 주세요

    Name

    Password

    Homepage

    비밀글

    CMD 포트 죽이기 - CMD poteu jug-igi

    개발 도중 사용하고 있던 특정 포트가 종료되지 않아 다시 명령어를 입력했을 때 에러가 발생하는 경우를 한 번씩 겪는다.
    (ex. node:3000, django:8080, tomcat:8080)

    이번 기회에 윈도우에서 명령 프롬프트(CMD)를 통해 특정 포트가 열려있는지 검색하고 해당 포트를 죽이는 명령어에 대해서 정리하고자 한다.

    특정 포트 검색 (netstat -ano)

    • 기본 명령어는 netstat 이다.
      CMD 포트 죽이기 - CMD poteu jug-igi
    • 그런데 이렇게 해서는 우리가 원하는 특정 포트가 현재 사용되고 있는지와 taskkill(특정 포트 종료 명령어)을 사용하기 위해서 알아야 할 pid가 나오지 정확히 나오지 않기 때문에 netstat 명령어에 옵션을 붙여준다.
    • 다양한 옵션에 대한 설명은 netstat help를 통해 알 수 있다.
      CMD 포트 죽이기 - CMD poteu jug-igi
    • 우리는 netstat -ano를 실행한다.
      - -a : 모든 연결 포트 표시
      - -n : 주소와 포트 번호를 숫자 형식으로 표시
      - -o : 프로세스 ID (PID) 표시
      - 로컬에서 개발 중이었다면 굳이 n 옵션은 사용하지 않아도 포트는 확인할 수 있다.
      CMD 포트 죽이기 - CMD poteu jug-igi
    • 우리가 현재 우리가 찾을려는 포트는 3000번 포트이다.
    • 3000번 포트를 사용하고 있는 프로세스의 PID는 22644임을 확인할 수 있다.

    특정 포트 죽이기 (taskkill /f /pid [PID])

    • PID를 확인했다면 taskkill 명령어를 통해 종료시킬 수 있다.
    • taskkill 명령어 또한 다양한 옵션을 가지고 있다. 다양한 옵션에 대해 알고 싶다면 taskkill /?를 통해 확인해보자
      CMD 포트 죽이기 - CMD poteu jug-igi
    • 우리는 taskkill /f /pid [PID]를 통해 특정 포트를 종료하도록 한다.
      - /f : 강제 종료
      - /pid [PID] : 종료할 프로세스의 PID 지정
    • 우리는 pid가 22644인 프로세스를 종료하고자 했기 때문에 taskkill /f /pid 22644를 통해 3000번을 사용하고 있는 프로세스를 종료한다.
      CMD 포트 죽이기 - CMD poteu jug-igi
    • 다시 netstat -ano를 통해 현재 연결 포트를 확인해보자
      CMD 포트 죽이기 - CMD poteu jug-igi
    • 3000번 포트가 말끔히 종료되었다.
    • 다시 node를 실행해보면 잘 실행된다.
      CMD 포트 죽이기 - CMD poteu jug-igi

    추가 (find)

    • 우리는 특정 포트를 확인할 때 netstat -ano를 통해 포트를 확인했다.
    • 사실 이건 비효율적인 명령이다.
    • find 명령어와 함께 사용하면 손쉽게 특정 포트를 확인할 수 있다.
    • netstat -ano | find "3306"과 같이 명령어를 실행하면 다음과 같이 netstat -ano의 출력 결과 중 "3306"이 포함된 부분만 출력된다.
      CMD 포트 죽이기 - CMD poteu jug-igi

    웹 개발 도중 이클립스에서 톰캣이 불안정 종료되어 

    생긴 포트 겹침 오류 때문에 톰캣이 시작되지 않았는데요. 

    이번 기회에 특정 포트 8080을 찾아 프로세스를 

    종료시킴으로써 오류를 해결했습니다. 

    먼저 명령프롬포트창인 CMD를 열어

    netstat -a -o

    명령어를 입력합니다.

    위 사진과 같이 

    프로토콜 / 로컬 주소 / 외부 주소 / 상태 / PID가

    주르륵 나오는데요. 

    저희가 필요한건 로컬주소에

    0.0.0.0: ← 이거 다음 숫자인 port번호와  PID입니다.

    다시 한번 위에 사진을 가져와서

    제가 필요한 8080포트를 확인해보면???

    저기 빨간색 상자로 표시해둔 부분이

    8080 포트가 LISTENING으로 종료되지 않고 실행되고 있었네요.

    이제 PID 번호를 확인한 다음

    8080 포트의 프로세스를 종료시키겠습니다.

    명령어

    taskkill /f /pid PID번호

    를 입력했더니 프로세스 종료가 성공적으로 이루어졌습니다.

    그 후 톰캣을 실행했더니 동작도

    잘 되고요.

    그 외 저에겐 쓰일 용도가 없겠지만 

    taskkill에 대한 나머지 명령어에 대한

    간단한 설명도 추가합니다.

    /S   시스템   : 연결할 원격 시스템 지정

    /U   도메인유저   : 명령을 실행해야 하는 사용자 컨텍스트 지정

    /P   암호   : 해당 사용자 컨텍스트의 암호 지정

    /FI   필터   : 작업 집합을 선택하는 필터 적용 ( * 사용가능)

    /PID   프로세스ID   : 종료할 프로세스의 PID 지정

    /IM   이미지이름   : 종료할 프로세스 이미지 이름 지정, (*을 사용하여 모든 작업 or 이미지 지정 가능)

    /T    종료   : 지정된 프로세스와 모든 자식 프로세스를 종료

    /F   강제종료    : 프로세스 강제종료

    /?   도움말   : 도움말 표시

    ex) taskkill /S 시스템 /U 사용자이름 /P 암호

    ex) taskkill /IM notepad.exe

    ex) taskkill /PID 8080 /PID 14430 /T