taskkill은 하나 이상의 작업(프로세스)을 종료하는 명령이다. 54장(tasklist)으로 확인한 PID나 이미지 이름을 지정해 사용한다.
이 장을 읽기 전에
선행 챕터: 이 장은 54장: tasklist에서 실행 중인 프로세스를 조회하는 법을 다룬 뒤 이어진다. tasklist가 “무엇이 실행 중인가"였다면, taskkill은 “그중 무엇을 멈출 것인가"다.
이 장의 깊이: 입문–중급.
사용법
| |
옵션
| 옵션 | 설명 |
|---|---|
/pid <PID> | 종료할 프로세스 ID |
/im <이미지이름> | 종료할 프로세스의 이미지 이름. 와일드카드(*) 지원(필터와 함께일 때만) |
/f | 강제 종료. 원격 프로세스에는 이 옵션과 무관하게 항상 강제 적용됨 |
/t | 지정한 프로세스와 그 자식 프로세스 모두 종료 |
/fi <필터> | 54장과 같은 필터 체계로 대상 선별 |
54장에서 다룬 필터 이름·연산자는 taskkill에도 거의 동일하게 적용된다(STATUS·WINDOWTITLE은 원격 조회에서 지원되지 않는 제약도 동일하다).
예시
| |
주의사항·함정
원격 프로세스는 /f 여부와 무관하게 항상 강제 종료된다: 이 장의 가장 중요한 함정이다.
“Ending a remote process is always carried out forcefully, regardless whether the /f option is specified.” — Microsoft Learn, “taskkill”
로컬에서는 /f 없이 실행하면 프로세스에 종료 요청만 보내고 응답이 없어도 강제 종료하지 않지만, /s로 원격 컴퓨터의 프로세스를 종료할 때는 이 정중한 절차 자체가 없다 — 항상 강제 종료다. 원격 서버에서 taskkill을 실행하기 전에는 로컬보다 더 신중해야 하는 이유다.
/im *는 필터와 함께일 때만 와일드카드로 동작한다: 이미지 이름에 와일드카드를 쓰려면 반드시 /fi 필터를 함께 지정해야 한다. 필터 없이 taskkill /im *만 실행하는 것은 지원되지 않는다 — 시스템의 모든 프로세스를 실수로 종료하는 것을 막는 안전장치에 가깝다.
컴퓨터 이름을 hostname 필터에 넣으면 시스템 전체가 종료될 수 있다: Microsoft Learn은 특정 필터에 컴퓨터 이름을 잘못 제공하면 그 컴퓨터의 모든 프로세스를 멈추는 셧다운으로 이어질 수 있다고 경고한다. 필터 값에는 정확히 어떤 값이 기대되는지(사용자 이름인지, 이미지 이름인지) 표를 다시 확인하는 습관이 필요하다.
/t로 자식 프로세스까지 종료하되, 필터와 조합하면 조건이 좁아진다: /t는 지정한 프로세스와 그 자식들을 함께 종료하지만, /fi로 사용자 조건을 추가하면(위 예시의 /pid 2134 /t /fi "username eq administrator") 그 조건에 맞는 프로세스만 대상이 된다 — 조건에 맞지 않는 자식 프로세스는 그대로 남을 수 있다.
PowerShell에서는 Stop-Process가 대응 명령이다: Stop-Process -Name notepad처럼 이미지 이름으로, 또는 -Id로 PID를 지정해 종료한다. -Force 매개변수가 taskkill의 /f와 대략 대응하지만, 기본 동작(강제 없이 종료를 시도하는 방식)의 세부는 서로 다르므로 스크립트를 그대로 옮겨 쓰기보다는 대상 프로세스가 정상 종료 요청을 어떻게 처리하는지 먼저 확인하는 편이 안전하다.
흔한 오개념
"taskkill /im notepad.exe를 실행하면 메모장 창 하나만 닫힌다”는 오해가 있다. /im은 이미지 이름이 일치하는 프로세스를 전부 대상으로 삼는다 — 메모장 창을 세 개 띄워놓고 taskkill /im notepad.exe를 실행하면 세 프로세스가 모두 종료된다. 특정 창 하나만 닫고 싶다면 /im 대신 tasklist로 확인한 정확한 /pid 값을 지정하거나, /fi 필터로 대상을 좁혀야 한다.
다음 장에서는
다음은 56장 — 백그라운드에서 실행되는 Windows 서비스를 조회·구성하는 sc 명령을 다룬다.
평가 기준
- taskkill로 PID·이미지 이름·필터를 조합해 프로세스를 종료할 수 있다.
- 원격 프로세스가
/f여부와 무관하게 항상 강제 종료된다는 것을 설명할 수 있다. /im에 와일드카드를 쓰려면 필터가 함께 필요하다는 제약을 안다./t로 자식 프로세스까지 종료할 때 필터 조건이 어떻게 영향을 주는지 설명할 수 있다.
![Featured image of post [CMD] 55. taskkill - 프로세스 종료](/post/cmd/taskkill-command-terminate-process-windows-cmd/wordcloud_hu_5bf5f36c8d02bed0.webp)
![[CMD] 53. verify - 디스크 쓰기 검증 설정](/post/cmd/verify-command-verify-file-writes-windows-cmd/wordcloud_hu_bc3286fd91290565.webp)
![[CMD] 54. tasklist - 실행 중인 프로세스 목록 조회](/post/cmd/tasklist-command-list-running-processes-windows-cmd/wordcloud_hu_4d97e384a344e83b.webp)
![[CMD] 55. taskkill - 프로세스 종료](/post/cmd/taskkill-command-terminate-process-windows-cmd/wordcloud_hu_ddd283af47ca6ca.webp)
![[CMD] 56. sc - Windows 서비스 조회와 구성](/post/cmd/sc-command-manage-windows-services-cmd/wordcloud_hu_58a312f8ee4fc53a.webp)
![[CMD] 57. schtasks - 예약 작업 생성과 관리](/post/cmd/schtasks-command-scheduled-tasks-windows-cmd/wordcloud_hu_81aec3fe438b0635.webp)
![[CMD] 58. start - 새 창에서 프로그램 실행](/post/cmd/start-command-run-program-new-window-windows-cmd/wordcloud_hu_293cdb6cf51a1dfc.webp)
![[CMD] 59. shutdown - 시스템 종료·재시작·로그오프](/post/cmd/shutdown-command-restart-shutdown-windows-cmd/wordcloud_hu_a22283eef4eb4918.webp)
![[CMD] 61. cacls - ACL 표시·수정(레거시)](/post/cmd/cacls-command-legacy-acl-windows-cmd/wordcloud_hu_3317e52af9c965e5.webp)
![[CMD] 62. openfiles - 원격으로 열린 파일 조회와 연결 해제](/post/cmd/openfiles-command-remote-open-files-windows-cmd/wordcloud_hu_6dffa9a34a4f6448.webp)