tasklist, taskkill로 프로세스 죽이기

2012.04.05 13:12 컴퓨터/우분투/리눅스

Microsoft Windows 얘기입니다. 윈도7하고 XP에서만 확인했는데 윈도 2000에서도 된다고 하네요. 프로세스를 어떻게 죽이시나요? 보통 Ctrl-Alt-Del 키를 눌러서 작업 관리자를 실행하거나 작업 표시줄을 오른쪽 마우스 버튼을 클릭한 후에 작업 관리자를 호출한 다음 프로세스를 선택해서 끝내기를 할 것입니다.

또 다른 방법은 "명령 프롬프트"를 이용하는 방법입니다. (1)키보드만으로 프로세스를 죽일 수 있다는 장점 외에도 (2)확인 버튼을 한 번 더 누르는 수고(?)를 덜 수 있고 (3)한 번에 여러개의 프로세스를 종료 할 수 있습니다. 예를 들어 워드 패드를 강제 종료해 보겠스니다.

이미지 이름으로 강제 종료

보조 프로그램에서 "명령 프롬프트"를 실행합니다. 어떤 프로세스가 실행 중인지 확인하기 위해 tasklist를 실행합니다.

워드 패드 2개가 실행 중입니다. 명령으로 taskkill /f /im wordpad.exe라고 입력하고 엔터키를 누룹니다.

2개의 워드 패드가 종료됩니다. /f 는 force 옵션으로 강제 종료 시킵니다. 만일 /f 없이 실행하면 프로세스에 종료하라는 신호를 전달합니다. 강제 종료와 종료 신호를 보내는 차이는 프로세스를 바로 죽일지, 아니면 프로세스에게 종료 버튼을 누른 것처럼 종료 처리를 할 수 있게 하는지입니다. 즉, /f를 이용하면 프로세스는 저장할 내용이 있더라도 무시하고일말 그대로 강제 종료 됩니다. 그러나 /f 없이 사용해서 종료 신호를 전송하면 프로세스는 종료하기 전에 처리할 것이 있는지 확인하고, 예를 들어 내용이 변경되어 저장할 것이 있다면 사용자에게 저장 할지를 묻는 대화상자를 출력하게 됩니다.

/im은 image name을 가르키는 옵션으로 이후에 wordpad.exe를 대상으로 하라는 뜻입니다.

프로세스 ID로 종료

/im으로 2개의 프로세스가 종료 되었지만, 프로세스 ID를 지정하여 특정 프로세스만 종료할 수 있습니다. 아래처럼 /im 대신에 /pid를 사용합니다. 그리고 프로세스 ID를 입력하면 됩니다.

응답 없는 프로세스만 종료

프로세스를 종료하는 경우는 대부분 응답이 없는 프로세스를 종료하는 경우일 것입니다. 작동이 된다면 종료 버튼을 클릭하는 것이 편할 테니 말이죠. 또한 한 번에 여러 개의 응답 없는 프로세스를 종료 시킬 수 있습니다.

> taskkill /fi "status eq not responding"

/fi는 조건을 입력 받는데 상태가 응답 없음을 필터링하게 합니다. /f 까지 사용했다면 강제 종료가 되겠죠. 그러나 이것은 엉뚱한 프로세스까지 죽일 수 있으므로 taskkill에서 사용하기 보다는 tasklist에서 PID를 확인한 후에 /pid로 taskkill을 사용하는 것이 안전합니다.

MS 윈도에서 GUI로만 사용하다가 "명령 프롬프트"에서 작업하다 보면 새로운 느낌을 받습니다. ^^

신고
이 댓글을 비밀 댓글로
  1. 좋은 정보 감사합니다. 덕분에 유용하게 사용할 수 있네요!
    • 2015.01.31 12:52
    비밀댓글입니다
    • 노주임
    • 2015.07.09 14:03 신고
    정말 진짜 너무나도 도움이 된 자료 입니다.
    대단히 감사합니다!!
    • 구재효
    • 2017.07.15 07:02 신고
    C:\Windows\System32>taskkill /f /pid 9312
    오류: 프로세스(PID 9312)를 종료할 수 없습니다.
    원인: 액세스가 거부되었습니다
    이거 어떻게하면 강종할수있나요