2015/07/20

명령창(cmd.exe)에서 프로세스 조회 및 종료시키는 방법

http://kiros33.blog.me/220426627812


Revision History
2015/07/21 11:52:43 - 최초 작성 

명령창(cmd.exe)에서 프로세스 조회 및 종료시키는 방법

GUI가 좋긴하지만 반복된 작업에 능숙해지는 숙련자라면 여기저기 눌러대는 마우스 클릭이 반갑지 않을 때가 종종 있습니다.

(개인적으로 겉멋이 들어서 CLI가 최고라고 생각하는 사람임을 먼저 밝힙니다.)

다양한 이유가 있겠지만 저의 경우는 다음과 같은 경우 명령창에서 프로세스를 관리합니다.
1) 여러 이유로 CPU에 과부하가 걸린 경우 문제되는 프로세스를 kill 할 때
2) 배치에서 프로세스를 찾아서 분기하거나 직접 kill 해야 할 경우 
3) 특정 DLL 파일을 사용하는 프로세스를 찾을 때

> tasklist - 현재 실행되고 있는 프로세스 목록 표시
C:\Windows\system32>tasklist /?

TASKLIST [/S 시스템 [/U 사용자 이름 [/P [암호]]]]
         [/M [모듈] | /SVC | /V] [/FI 필터] [/FO 형식] [/NH]

설명:
    이 도구는 로컬 또는 원격 시스템에서 현재
    실행되고 있는 프로세스 목록을 표시합니다.

매개 변수 목록:
   /S     시스템           연결할 원격 시스템을 지정합니다.

   /U     [도메인\]사용자  명령을 실행해야 하는 사용자 컨텍스트를
                           지정합니다.

   /P     [암호]           해당 사용자 컨텍스트의 암호를 지정합니다.
                           생략한 경우에는 물어봅니다.

   /M     [모듈]           해당 exe/dll 이름을 사용하는 모든 작업을
                           나열합니다. 모듈 이름을 지정하지 않으면
                           로드된 모든 작업을 나열합니다.

   /SVC                    각 프로세스에 호스트된 서비스를 표시합니다.

   /APPS                   스토어 앱 및 관련 프로세스를 표시합니다.

   /V                      자세한 작업 정보를 표시합니다.

   /FI    필터             필터에서 지정한 조건과 일치하는
                           작업 집합을 표시합니다.

   /FO    형식             출력 형식을 지정합니다.
                           사용할 수 있는 값: "TABLE", "LIST", "CSV".

   /NH                     출력에 표시하지 않을 "열 머리글"을
                           지정합니다.
                           "TABLE"과 "CSV" 형식에서만 사용할 수 있습니다.

   /?                      Displays this help message.

필터:
    필터 이름       유효한 연산자             유효한 값
    -----------     ---------------           --------------------------
    STATUS          eq, ne                    RUNNING | SUSPENDED
                                              NOT RESPONDING | UNKNOWN
    IMAGENAME       eq, ne                    이미지 이름
    PID             eq, ne, gt, lt, ge, le    PID 값
    SESSION         eq, ne, gt, lt, ge, le    세션 번호
    SESSIONNAME     eq, ne                    세션 이름
    CPUTIME         eq, ne, gt, lt, ge, le    CPU 시간
                                              (hh:mm:ss 형식)
                                              hh - 시간,
                                              mm - 분, ss - 초
    MEMUSAGE        eq, ne, gt, lt, ge, le    메모리 사용(KB)
    USERNAME        eq, ne                    사용자 이름([domain\]user
                                              형식)
    SERVICES        eq, ne                    서비스 이름
    WINDOWTITLE     eq, ne                    창 제목
    MODULES         eq, ne                    DLL name

참고: 원격 컴퓨터를 쿼리할 때 "WINDOWTITLE" 및 "STATUS" 필터는
      지원되지 않습니다.

Examples:
    TASKLIST
    TASKLIST /M
    TASKLIST /V /FO CSV
    TASKLIST /SVC /FO LIST
    TASKLIST /APPS /FI "STATUS eq RUNNING"
    TASKLIST /M wbem*
    TASKLIST /S 시스템 /FO LIST
    TASKLIST /S 시스템 /U domain\username /FO CSV /NH
    TASKLIST /S 시스템 /U 사용자 이름 /P 암호 /FO TABLE /NH
    TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
   
> taskkill - 실행중인 프로세스를 PID 혹은 이미지(실행파일) 이름으로 종료
C:\Windows\system32>taskkill /?

TASKKILL [/S 시스템 [/U 사용자 이름 [/P [암호]]]]
         { [/FI 필터] [/PID 프로세스 id | /IM 이미지 이름] } [/T] [/F]

설명:
    이 도구는 프로세스 ID(PID) 또는 이미지 이름으로 작업을 종료하는 데
    사용합니다.

매개 변수 목록:
    /S    시스템           연결할 원격 시스템을 지정합니다.

    /U    [도메인\]사용자  명령을 실행해야 하는 사용자 컨텍스트를
                           지정합니다.

    /P    [암호]           해당 사용자 컨텍스트의 암호를 지정합니다.
                           생략한 경우에는 물어봅니다.

    /FI   필터             작업 집합을 선택하는 필터를 적용합니다.
                           "*"를 사용할 수 있습니다. 예: imagename eq acme*

    /PID  프로세스_ID      종료할 프로세스의 PID를 지정합니다.
                           TaskList를 사용하여 PID를 얻을 수 있습니다.

    /IM   이미지 이름      종료할 프로세스의 이미지 이름을
                           지정합니다. 와일드카드 문자 '*'를 사용하여
                           모든 작업 또는 이미지 이름을 지정할 수 있습니다.

    /T                     지정된 프로세스와 그 프로세스로부터 시작된
                           모든 자식 프로세스를 종료합니다.

    /F                     프로세스를 강제로 종료하도록 지정합니다.

    /?                     이 도움말 메시지를 표시합니다.

필터:
    필터 이름     유효한 연산자             유효한 값
    -----------   ---------------           -------------------------
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    이미지 이름
    PID           eq, ne, gt, lt, ge, le    PID 값
    SESSION       eq, ne, gt, lt, ge, le    세션 번호.
    CPUTIME       eq, ne, gt, lt, ge, le    CPU 시간 형식
                                            hh:mm:ss
                                            hh - 시간,
                                            mm - 분, ss - 초
    MEMUSAGE      eq, ne, gt, lt, ge, le    메모리 사용(KB)
    USERNAME      eq, ne                    사용자 이름([domain\]user
                                            형식)
    MODULES       eq, ne                    DLL 이름
    SERVICES      eq, ne                    서비스 이름
    WINDOWTITLE   eq, ne                    창 제목

    참고
    ----
    1) /IM 스위치에 대한 와일드카드 문자 '*'는 필터가 적용될 때만
    사용할 수 있습니다.
    2) 원격 프로세스는 항상 강제적으로(/F) 종료될 수 있습니다.
    3) 원격 컴퓨터가 지정되면 "WINDOWTITLE"  및 "STATUS" 필터는
       지원되지 않습니다.

예:
    TASKKILL /IM notepad.exe
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM cmd.exe /T
    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
    TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
    TASKKILL /S 시스템 /U domain\username /FI "USERNAME ne NT*" /IM *
    TASKKILL /S 시스템 /U 사용자 이름 /P 암호 /FI "IMAGENAME eq note*"
  

>>>>> 프로세스 찾기  

전체 프로세스 중 pdf 단어가 들어간 프로세스 검색

C:\Windows\system32>tasklist | find /i "pdf"
MasterPDFEditor.exe          19688 RDP-Tcp#106                2    478,592 K
MasterPDFEditor.exe          11236 RDP-Tcp#106                2    426,400 K
MasterPDFEditor.exe           9744 RDP-Tcp#106                2    584,600 K

  
전체 프로세스 중 pdf 단어가 들어간 프로세스 검색

C:\Windows\system32>tasklist /fi "imagename eq masterpdf*"

이미지 이름                    PID 세션 이름              세션#  메모리 사용
========================= ======== ================ =========== ============
MasterPDFEditor.exe          21188 RDP-Tcp#106                2    475,744 K
MasterPDFEditor.exe          15704 RDP-Tcp#106                2    423,964 K
MasterPDFEditor.exe          22292 RDP-Tcp#106                2    581,384 K



>>>>> 프로세스 찾기  - 모듈

프로세스에 사용된 전체 모듈 조회

C:\Windows\system32>tasklist /fi "imagename eq masterpdf*" /m

이미지 이름                    PID 모듈
========================= ======== ============================================
MasterPDFEditor.exe          21188 ntdll.dll, KERNEL32.DLL, KERNELBASE.dll,
                                   SYSFER.DLL, USER32.dll, GDI32.dll,
                                   ADVAPI32.dll, CRYPT32.dll, CRYPTUI.dll,
                                   WINMM.dll, Qt5PrintSupport.dll,
                                   Qt5Widgets.dll, Qt5Gui.dll, Qt5Network.dll,
                                   Qt5Core.dll, MSVCP120.dll, MSVCR120.dll,
                                   SHELL32.dll, msvcrt.dll, sechost.dll,
                                   RPCRT4.dll, MSASN1.dll, WINMMBASE.dll,
                                   WINSPOOL.DRV, COMDLG32.dll, WS2_32.dll,
                                   DNSAPI.dll, ole32.dll, MPR.dll,
                                   icuin53.dll, icuuc53.dll, combase.dll,
                                   SHLWAPI.dll, cfgmgr32.dll, DEVOBJ.dll,
                                   COMCTL32.dll, NSI.dll, icudt53.dll,
                                   SHCORE.DLL, IMM32.DLL, MSCTF.dll,
                                   version.dll, CRYPTBASE.DLL,
                                   bcryptPrimitives.dll, qwindows.dll,
                                   OLEAUT32.dll, uxtheme.dll,
                                   kernel.appcore.dll, dwmapi.dll, qjpeg.dll,
                                   GDIPLUS.DLL, userenv.dll, profapi.dll,
                                   CRYPTSP.dll, rsaenh.dll, bcrypt.dll


페퍼 플래시플레이어 모듈을 사용하는 프로세스 조회
C:\Windows\system32>tasklist /m "pepflashplayer.dll"

이미지 이름                    PID 모듈
========================= ======== ============================================
chrome.exe                   21568 pepflashplayer.dll

C:\Windows\system32>tasklist /m "pepflash*"

이미지 이름                    PID 모듈
========================= ======== ============================================
chrome.exe                   21568 pepflashplayer.dll

  

>>>>> 프로세스 찾기  - 서비스

프로세스가 호스트 하는 서비스 표시

C:\Windows\system32>tasklist /svc | find /i "every"
Everything.exe                1688 Everything
Everything.exe                6088 N/A



>>>>> 프로세스 종료

필터는 STATUS, IMAGENAME, PID, SESSION, CPUTIME, MEMUSAGE, USERNAME, MODULES, SERVICES, WINDOWTITLE 등을 사용할 수 있고 연산자를 통해 값을 설정하면 됩니다.

필터를 사용한 종료

C:\Windows\system32>taskkill /fi "imagename eq masterpdf*"
성공: 프로세스(PID 19688)에 종료 신호를 보냈습니다.
성공: 프로세스(PID 11236)에 종료 신호를 보냈습니다.
성공: 프로세스(PID 9744)에 종료 신호를 보냈습니다.


PID 직접 지정한 종료

C:\Windows\system32>taskkill /pid 22020 /pid 8764 /pid 19740 /f
성공: 프로세스(PID 22020)가 종료되었습니다.
성공: 프로세스(PID 8764)가 종료되었습니다.
성공: 프로세스(PID 19740)가 종료되었습니다.


이미지(실행파일) 이름을 사용한 종료

C:\Windows\system32>taskkill /im masterpdfeditor.exe /f
성공: 프로세스 "MasterPDFEditor.exe"(PID 18796)이(가) 종료되었습니다.
성공: 프로세스 "MasterPDFEditor.exe"(PID 9340)이(가) 종료되었습니다.
성공: 프로세스 "MasterPDFEditor.exe"(PID 21592)이(가) 종료되었습니다.



검색:  Windows, 윈도우, Win, 윈, Find and Kill Processes using Command Prompt in Windows, cmd.exe, 명령 프롬프트에서 프로세스를 찾고 죽이는 방법, 킬, 제거, 삭제, 

댓글 없음:

댓글 쓰기