윈도우 커맨드창에서 프로세스 종료시키기

간혹 Visual Studio로 빌드를 하다보면 원인모를 이유로 빌드는 안되고 컴파일러만 잔뜩 떠 있는채로 아무것도 할 수 없는 경우가 발생한다...
(실제로 이번주에만 두 번 발생함...)
보통 이럴땐 재부팅이 정답이지만...
뭔가 띄워놓은게 많은 경우에는 재부팅 후 다시 띄우는게 여간 귀찮은게 아니다.
이런 경우 문제있는 프로세스만 종료시키고 다시 빌드를 하고 싶은데 컴파일러류의 경우에는 CPU 숫자만큼 뜨기 때문에 작업관리자에서 한땀한땀 종료시키는건 정말 하고 싶지 않은 단순 노가다다.
그래서 커맨드 창에서 뭔가 명령어로 샥~ 종료시킬 수 없나 방법을 찾았더니

taskkill 이라는 명령어를 찾았다.

시작 -> 실행 -> cmd 입력 후 엔터를 누른 후 뜨는 커맨드 창에서 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*"



여러가지 옵션을 제공하고 있으나 내가 사용하고자 하는 옵션은 바로 /IM 과 /F
taskkill /IM MSBuild.exe /F 를 실행하면 문제있는 MSBuild.exe를 한방에 종료시킬 수 있다.

댓글

가장 많이 본 글