윈도우에서 특정 프로그램이 먹통된 경우, 일반적으로 작업 관리자를 띄워서 응용 프로그램 탭에서 작업 끝내기 버튼을 누르실 텐데, 가끔 이렇게 눌러도 먹통된 상태로 머무르는 경우가 있습니다. 물론 이럴 때 깔끔하게 재부팅 한번 해줘도 되겠지만, 명령어를 이용해서 프로세스를 종료해봅시다.

프로세스를 종료시킬 때 사용하는 명령어는 taskkill 입니다. 리눅스의 kill 명령어와 비슷하다 보시면 됩니다.

기본적으로 2가지 방식을 사용하는데

taskkill /f /im xxxx.exe
taskkill /f /pid 0000

/f 옵션은 강제로 종료하겠다는 말이고
/im 옵션은 이미지 이름을 지정하겠다는 말입니다.
/pid 옵션은 말 그대로 PID 값(숫자)을 지정하겠다는 말이구요.

이미지 이름이나 PID는 어떻게 확인할까요? 이미지 이름은 작업 관리자 프로세스 탭에 표시되지만 PID는 기본적으로 표시되지 않습니다. 하지만 표시하는 방법이 있는데...

작업 관리자 프로세스 탭에서 보기 메뉴를 누르면 열 선택이라는 항목이 나옵니다.


여기서 PID에 체크를 해주시면


아래 그림처럼 PID가 표시됩니다.


그런데 굳이 작업 관리자에서 확인하지 않더라도, 이미지 이름과 PID 값을 tasklist 명령어로 확인할 수 있습니다. 그리고 UI에서 확인할 수 없는 내용도 있기 때문에 tasklist 명령어는 익혀두시는게 좋겠습니다.


자 이제 여기서부터 막히는 부분이 생기게 됩니다. 같은 이름의 프로세스가 여러개 있는데, 어떤 녀석을 죽여야 할지 (몇번 PID를 죽여야 할지) 고민되는 경우가 있습니다. 바로 svchost.exe 에서 이런 고민을 하시게 될 것입니다. 일단 svchost.exe가 뭔지 대충 설명드리자면

svchost.exe란?

Svchost.exe는 Windows에서 다양한 기능을 수행하는 데 사용하는 기타 개별 서비스를 호스팅하거나 포함하는 컴퓨터의 프로세스입니다. 예를 들어 Windows Defender에서는 svchost.exe 프로세스에서 호스팅하는 서비스를 사용합니다.

인스턴스마다 서로 다른 서비스를 포함하는 여러 svchost.exe 인스턴스가 컴퓨터에서 실행 중일 수 있습니다. 한 svchost.exe 인스턴스는 프로그램의 단일 서비스를 호스팅하고 다른 인스턴스는 Windows와 관련된 여러 서비스를 호스팅할 수 있습니다. 작업 관리자를 사용하면 각각의 svchost.exe 인스턴스에서 실행 중인 서비스를 볼 수 있습니다.
출처 : http://windows.microsoft.com/ko-KR/windows-vista/What-is-svchost-exe

그러니까 한마디로 윈도우에서 서비스를 띄워주는 역할을 한다고 보시면 되는데, 많은 윈도우 서비스들이 svchost.exe 프로세스에 올라가 서비스로 동작하고 있습니다. 그런데 어떤 서비스가 어떤 PID의 svchost.exe 에 들어있는지 확인하려면 어떻게 해야 할까요?

tasklist /svc


많아서 보기 불편하시죠? 그렇다면 svchost.exe 이미지만 걸러내 볼까요?

tasklist /svc /fi "imagename eq svchost.exe"


또는 내가 찾고자 하는 서비스 이름을 알고 있다면 다른 방식으로 찾을 수도 있습니다. 예를 들어 작업 스캐줄러를 찾고 싶다면

tasklist /svc /fi "services eq schedule"


아무튼 이렇게 tasklist를 잘 활용하면 어떤 프로세스를 죽여야 하는지 쉽게 찾을 수 있습니다. 물론 윈도우 비스타 이상에서는 작업관리자에서 웬만큼 해결이 되지만, 그래도 taskkill, tasklist 명령어는 알아두시는게 좋다고 생각합니다.
신고
Share
  1. BlogIcon blc
    2012.01.17 01:22 신고

    아 어쩌다 보니 process ID를 알아야했는데 검색해봐도 별 게 안나와서 포기상태였는데
    여기서 알게되네요 ㅎㅎ

  2. 명령어가 안 먹히는 이윤 뭘까요?
    2012.01.17 01:36 신고

    전에도 어떤 명령어에 대해 설명해주신 적이 있으셨죠?
    그 때도 그 명령어가 먹히질 않았었거든요!
    근데, 이번 명령어도 먹히질 않네요, 제 컴에서는~

    솔직히 말씀드리자면, 제 컴에 실시간 감시하는 뭔가가 설치돼있다고 생각하고 있거든요!
    근데, 이 놈을 백신이나 뭐.. 이런 걸론 잡아지지가 않습니다.
    그렇다고 다른 방법을 사용해봐도 좀.. 안 되는 거 같구 말이죠!

    근데, 어제도 문제의 심각성을 느끼게 된 것이,
    공인인증서를 재발급 받게 되면서, 은행사이트에 접속했더니만은,
    보안프로그램이 설치되면서 뭔가 좀.. 버벅됨과 동시에 어떤 문제들이 나타나는가 싶더니만,
    제가 키를 누르지 않았는데도, 인증서의 비번이 마구 입력되는 겁니다.
    이걸 봤을때, 은행사이트의 보안프로그램이 저들(?)의 어떤 감시프로그램과 연동돼서, 제 컴을 완전 무장해제시키는 거 같은데 말이죠...

    요것들을 어떤 식으로 잡아내야 할까요?

    • 익명...
      2012.01.18 01:55 신고
      수정 및 삭제

      원래 저 명령어는
      taskkill.exe, tasklist.exe 파일이 실행되는겁니다.
      Path 안에 System32가 있고
      cmd가 path 영역 실행까지 확인하는건 아실겁니다.

      그래서 위 파일명만 쳐도 저 exe프로그램이 실행되는겁니다.

      아... 진짜 중요포인트는 XP Home 버젼에는 저 파일이 없더군요..

      혹시 하는거지만 Windows XP 버젼 확인해보시길 바랍니다.(Professional에는 있더군요)

    • 명령어가 안 먹히는 이윤 뭘까요?
      2012.01.18 17:16 신고
      수정 및 삭제

      이사람 진짜 ㅋㅋ 댓글보면

      안전불감증 있는사람같음 ㅋㅋㅋㅋㅋ

      무슨 정부 어쩌구 하질않나 ㅋㅋ

      걍 무시하는게좋을듯 ㅋ

    • 안전불감증이라뇨
      2012.02.07 22:35 신고
      수정 및 삭제

      '안전불감증'은 안전에 대해서 무감각한 증세입니다.
      안전을 느끼지 못하는 증세가 아닙니다.

    • ㅎ?
      2014.10.30 01:25 신고
      수정 및 삭제

      혹시 김수환아님?

  3. BlogIcon 불새_gmk
    2012.01.23 17:08 신고

    그냥 프로세스의 오른쪽누르고 프로세스 끝내기하시면 되지 않나요??

  4. BlogIcon 비공개
    2012.01.26 11:04 신고

    저는 Windows 7 Uitimate K 32-Bit Service Pack 1인데 tasklist가 안되네요...

  5. serin
    2012.03.07 17:38 신고

    system이 사용하고 있는 프로세스는 어떻게 종료하는 방법은 없을까요??

  6. 도움받는이
    2013.08.07 18:22 신고

    좋은 정보 감사합니다. 한 응용 프로그램이 계속 오류가 나고 작업 끝내기로 닫히지 않아서 짜증이 났었는데, 이대로 하니 잘 해결이 됐네요!

  7. goodtip
    2013.11.30 06:16 신고

    와우 좋네요. 간간이 TerminateProcess 같은 api가 잘 안통하는 것들이 있었는데.
    요걸로 보완하면 되겠네요

  8. ddd
    2014.01.02 16:54 신고

    cmd 창에서 실행했는데요..

    오류 : 프로세스 <PID ****>를 종료할 수 없습니다.
    원인 : 액세스가 거부되었습니다... 라고 나오면 어떻게 해야할지요??

    좀더 강력한 방법이 없을지요?

    • 나그네
      2014.07.10 17:30 신고
      수정 및 삭제

      cmd창을 관리자 권한으로 실행한 후 실행하면 됩니다. ㅎㅎ

  9. BlogIcon 감사
    2014.07.12 22:10 신고

    와 진짜너무감사합니다 큰도움얻고가요

  10. doe
    2014.10.06 20:32 신고

    xp입니다. 저 역시 ddd님처럼
    오류 : 프로세스 <PID ****>를 종료할 수 없습니다.
    원인 : 액세스가 거부되었습니다
    라는 메세지가 출력되는데, xp에는 관리자 권한이 없어서 죽일수가 없습니다.
    로그온한 계정은 관리자계정입니다. 다른방법 없을까요?

  11. 감사합니다
    2015.01.01 00:05 신고

    감사합니다. 덕분에 쓰레기같은 애드웨어 하나 정리했네요
    프로그램 추가제거에서도 삭제가 안되고.. 빡쳤는데 알려주신대로 하니까 박살낼수 있었습니다

  12. 제우스
    2015.03.17 00:27 신고

    감사합니다. 검색해보면 필요한 내용이 다 있네요ㅎㅎ