Windows CMD 환경에서 실행 중인 프로세스를 조회하고, 특정 포트를 점유 중인 서비스를 식별하며, 문제 발생 시 해당 프로세스를 강제로 종료하는 필수 명령어(tasklist, netstat, taskkill) 사용법을 정리합니다.
1. 프로세스 조회 (tasklist)
현재 시스템에서 실행 중인 프로세스 목록을 확인합니다. 필터(/fi) 옵션을 사용하여 특정 프로세스만 검색할 수 있습니다.
이미지 이름으로 검색
특정 실행 파일명(Image Name)을 기준으로 프로세스를 찾습니다. (예: java.exe)
:: 사용법: tasklist /fi "imagename eq [프로세스명]"
C:\Users> tasklist /fi "imagename eq java.exe"
이미지 이름 PID 세션 이름 세션# 메모리 사용
========================= ======== ================ =========== ============
java.exe 1234 Console 1 150,000 K
2. 포트 점유 확인 (netstat)
네트워크 상태를 확인하여 특정 포트를 리슨(LISTEN)하고 있는 프로세스의 PID를 식별합니다.
Listening 포트 및 PID 확인
-ano 옵션을 사용하여 모든 연결, 숫자 형식의 주소, 그리고 소유 프로세스 ID(PID)를 함께 출력합니다.
:: 사용법: netstat -ano | find "[문자열]"
C:\Users> netstat -ano | find "LISTEN"
프로토콜 로컬 주소 외부 주소 상태 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 564
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 892
3. PID로 프로세스 식별 (Reverse Lookup)
netstat으로 확인한 PID(예: 564)가 실제로 어떤 서비스인지 tasklist를 통해 역추적합니다.
PID로 검색
:: 사용법: tasklist /fi "pid eq [PID]"
C:\Users> tasklist /fi "pid eq 564"
이미지 이름 PID 세션 이름 세션# 메모리 사용
========================= ======== ================ =========== ============
svchost.exe 564 Services 0 11,444 K
4. 프로세스 강제 종료 (taskkill)
응답하지 않거나 특정 포트를 점유하여 충돌을 일으키는 프로세스를 종료합니다.
PID를 이용한 강제 종료
/f 옵션은 강제 종료(Force)를 의미하며, /pid 옵션으로 대상을 지정합니다.
:: 사용법: taskkill /f /pid [PID]
C:\Users> taskkill /f /pid 6985
성공: 프로세스(PID 6985)가 종료되었습니다.
이미지 이름을 이용한 강제 종료
동일한 이름의 모든 프로세스를 한 번에 종료할 때 유용합니다.
:: 사용법: taskkill /f /im [이미지이름]
C:\Users> taskkill /f /im notepad.exe
5. 도움말 및 옵션 확인
각 명령어의 상세한 필터 옵션이나 사용법이 궁금할 경우 /? 플래그를 사용합니다.
tasklist /?
taskkill /?
Next Step:
CMD 명령어보다 더 강력하고 객체 지향적인 관리가 필요하다면, PowerShell의 Get-Process, Stop-Process, Get-NetTCPConnection Cmdlet 사용법을 학습해 보시길 권장합니다.