Windows에서 프로세스를 실제로 종료


375

때때로 Windows 시스템의 프로그램이 미쳐서 중단됩니다. 작업 관리자를 불러서 "프로세스 종료"버튼을 누르겠습니다. 그러나 이것이 항상 작동하는 것은 아닙니다. 내가 충분한 시간을 시도하면 결국 죽을 것이지만, 나는 그것을 즉시 죽일 수 있기를 정말로 원합니다. 리눅스 kill -9에서는 프로세스가 죽을 것이라고 보장 할 수있었습니다 .

이것은 또한 배치 스크립트를 작성하는 데 사용될 수 있으며 배치 스크립트를 작성하는 것은 프로그래밍입니다.

일부 거기에 프로그램이나 항상 프로세스를 종료합니다 (Windows)와 함께 제공된 명령은? 무료 타사 응용 프로그램은 괜찮을 것입니다.하지만 처음 앉아있는 컴퓨터 에서이 작업을 수행하고 싶습니다.


19
Stray 프로세스는 내가 동의하지 않는 프로그래밍에서 일반적으로 충분한 문제입니다. 이것은 주제를 벗어난 질문이 아닙니다.
Dan Molding

19
저는 매일 프로세스 관리를 개발자로 처리합니다. 이것은 나를 위해 완전히 ON 주제입니다!
John Fitzpatrick

14
이 질문을 삭제하지 않는 것이 좋습니다. +195 그리고 관련 질문에 대한 구글의 히트작입니다.
Joshua

2
"프로그래밍에 주로 사용되는 도구를 직접 사용하지 않는 한"Visual Studio와 관련하여 프로세스를 계속 실행하여 프로세스를 종료시키지 못하는 문제와 관련하여이 문제가 발생했습니다. Visual Studio를 닫으면 문제가있는 프로세스를 종료 할 수있었습니다.
Joakim

Stop-Process powershell cmdlet을 사용할 수 있습니다 .
Rosberg Linhares

답변:


318

Processes-Tab 호출의 "종료 프로세스" TerminateProcess는 Windows가 프로세스 종료를 알고있는 가장 궁극적 인 방법입니다.

사라지지 않으면 현재 일부 커널 리소스 (아마도 버그가있는 드라이버)를 기다리는 동안 잠겨 있으며 프로세스를 없애기 위해 할 수있는 것이 없습니다 (재부팅이 부족합니다).

http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx 에서이 블로그 항목을 살펴보십시오.

Linux와 같은 유닉스 기반 시스템 은 프로세스가 잠 들어 들어오는 신호를 처리 할 수 ​​없을 정도로 프로세스가 잘 잠들 kill -9때 "무정전 수면"(상위 및 ps로 D표시됨) 상태 인 경우 프로세스가 살아남을 수있는 문제가 있습니다. (이것은 kill신호를 보내는 것입니다).

일반적으로 무정전 수면 시간은 오래 걸리지 않지만 Windows에서와 같이 깨진 드라이버 또는 깨진 userpace 프로그램 ( vfork없이 exec)은 D영원히 잠들 수 있습니다.


29
나는 이것이 정답이라는 것을 싫어하지만, 내 생각에 그것은 아래의 taskkill보다 더 옳다는 것입니다 .... 바보 같은 버기 드라이버!
codetaku

6
재부팅보다 덜 성가신 것은 로그 오프 / 다시 로그온하는 것입니다. 여전히 일을 잃지 만 시간이 그리 많지는 않습니다.
awidgery

8
초기 프로세스가 항상 실행되도록하는 다른 프로세스 때문에 발생합니다. 당신은 당신의 오래된 인스턴스를 죽이고 감시자에 의해 새로운 인스턴스가 시작되었습니다
pilif

8
이 답변은 전혀 정확 하지 않습니다 . "프로세스 종료"는 서비스 프로세스를 종료 할 수 없기 때문에 프로세스를 종료하는 가장 궁극적 인 방법은 아닙니다 (예 :). taskkill /f가장 궁극적입니다.
user626528

5
TaskKill / f는 TerminateProcessAPI 만 호출합니다 . 작업 관리자와 정확히 동일한 기능을 수행합니다 (높은 권한을 가진 사용자에게는 맞습니다).
pilif

233
taskkill /im myprocess.exe /f

"/ f"는 "force"입니다. PID를 알고 있다면 다음과 같이 지정할 수 있습니다.

taskkill /pid 1234 /f

많은 다른 옵션이 가능합니다. taskkill /? 그들 모두를 위해. "/ t"옵션은 프로세스 및 모든 하위 프로세스를 종료합니다. 그것은 당신에게 유용 할 수 있습니다.


10
그냥 참고하십시오. 서버 관리 용 스크립트를 작성하는 경우 특히 유용합니다. NT Res 키트의 kill.exe로 인해 프로그램이 종료되지만 충돌 처리기 (특히 windbg)가 설치되어있는 경우 OS에서 종료 된 프로세스가 충돌 한 것으로보고 디버그하려고하면 문제가 발생할 수 있습니다. 그것. Taskkill은이 문제를 일으키지 않습니다.
Aaron

6
@lzprgmr-taskkill 및 "end task"는 아마도 동일한 기본 Windows 함수 "TerminateProcess"를 호출합니다. msdn.microsoft.com/en-us/library/windows/desktop/…
JosephStyons

60
이것은 작업 관리자에서 "프로세스 종료"보다 효과적이지 않습니다.
Eddie

2
재부팅하지 않고 SugarSync.exe를 강제 종료하려고 시도했습니다 (실제로 가기 전에 SugarSync를 두 번 다시 시작하면 다시 작동하게 됨). 그러나 taskkill / T / F / IM SugarSync.exe는 작동하지 않습니다. 그것은 "성공"을 주장
Jon Coombs

2
감사합니다! End Tasktaskkill /pid 1234 /f 가 작동을 거부하면 작동합니다! 와!
Hendy Irawan

37

프로세스 해커 프로세스 를 죽이는 수많은 방법이 있습니다.

프로세스를 마우스 오른쪽 단추로 클릭 한 후 기타-> 종료기로 이동하십시오.


5
이것을 검색하면 수백만 개의 무료 다운로드가 생성되므로 확증 방법을 많이 찾을 수 없습니다! 연결. 그러나 그것은 바이러스 위험과 모든 것을 말합니다.
bwerks

2
@Nuzzolilo : 물론입니다! 프로세스를 마우스 오른쪽 단추로 클릭하고 기타-> 종료기로 이동하십시오.
user541686

6
모든 프로세스에서 작동하지는 않지만 모든 옵션에서 살아남은 프로세스가 있습니다.
Zitrax

7
내 컴퓨터를 블루 스크린했습니다. 재부팅 후 프로세스가 종료되었습니다. 잘 했어요 ... -.- '
Pedro Oliveira

5
불행히도 Terminator는 v2.39에서 제거되었습니다 :(
raymai97

23

JosepStyons가 옳습니다. cmd.exe를 열고 실행하십시오.

taskkill /im processname.exe /f

오류가 발생하면

오류 : PID가 1234 인 "process.exe"프로세스를 종료 할 수 없습니다. 이유 : 액세스가 거부되었습니다.

그런 다음 관리자 권한으로 cmd.exe를 실행하십시오.


9
관리자 권한으로 실행하면 오류가 변경됩니다. 이제는 다음 ERROR: The process with PID 17888 (child process of PID 17880) could not be terminated. Reason: There is no instance of the task.과 같이 말합니다. 부모 PID 17880을 참조합니다. 부모를 찾을 수 없으므로 고아를 죽이지 않습니다. :(
Jesse Chisholm

1
"당신의 프로세스를 성공적으로 죽이기 위해 스폰 된 경우 자식 프로세스도 죽여야합니다"이 stackoverflow.com/questions/12528963/…
Dhruv Chandhok

필자의 경우, 내가 죽이겠다고 한 좀비 프로세스는 유일한 자식이었고 부모는 없었지만 좀비는 여전히 부모가 있다고 생각했습니다. 필자의 경우 Windows 8.1 설정 고급 복구 시스템 경로를 사용하지만 실제로 디스크를 지우지 않고 강제 재부팅을 수행하여 해결했습니다. 정기 종료 및 재부팅은 실제로 절전 / 최대 절전 모드입니다 (시작시 시간 절약). 전체 종료 를 수행하는 것은 쉽지 않습니다 .
Jesse Chisholm

"액세스가 거부되었습니다"는 프로세스가 이미 닫혀있는 중임을 의미합니다. 예를 들어 방금 이전에 닫으려고 시도한 경우입니다. 닫힐 때까지 기다려야합니다.
Pacerier

관리자 권한으로 taskkill 결과 : 액세스가 거부되었습니다.
amuliar

22

sysinternals (현재 Microsoft)에서 프로세스 탐색기 가져 오기

프로세스 탐색기-Windows Sysinternals | Microsoft 문서


15
그것은 더 많은 정보 (그리고 잠금 핸들을 검색하는 제한된 능력)를 제공하지만 기본 작업 관리자보다 작업을 죽이는 데 더 이상 성공하지 못했습니다. 안티 바이러스 및 SugarSync.exe와 같은 특정 프로세스는 단순히 죽기를 거부합니다.
Jon Coombs

15

제대로 작동하는 한 가지 트릭은 디버거를 연결 한 다음 디버거를 종료하는 것입니다.

XP 또는 Windows 2003에서는 기본 제공되는 ntsd를 사용하여이 작업을 수행 할 수 있습니다.

ntsd -pn myapp.exe

ntsd는 새 창을 엽니 다. 창에 'q'를 입력하면 디버거가 종료되고 프로세스가 종료됩니다.

작업 관리자가 프로세스를 죽일 수없는 경우에도 작동하는 것으로 알고 있습니다.

불행히도 ntsd는 Vista에서 제거되었으며 적절한 디버거를 얻으려면 Windows 용 (무료) 디버깅 도구 를 설치해야합니다 .


1
정말 감사합니다. autoquit에 "-c q"(따옴표없이)를 추가하면 이상적인 프로세스 킬러가됩니다.
Joanis

2
Visual Studio와 디버깅중인 응용 프로그램이 모두 중단되면 이전 VS 인스턴스를 연결하고 종료하십시오. 킬러는 VS의 새로운 인스턴스가 될 수 있으며, 그러면 이전 프로젝트를 열고 작업을 계속할 수 있습니다.
Bruno Martinez

아무것도 아닌 링크 이외의 링크에서 다운로드하는 방법을 알 수 winsdk_web.exe없습니다.
endolith

이제 설치 프로그램을 실행 한 다음 "Windows 용 디버깅 도구"( docs.microsoft.com/en-us/windows-hardware/drivers/debugger/… ) 이외의 모든 항목을 선택 취소하여 Windows 10 SDK에서 다운로드 할 수 있습니다.
Coburn

6

AT 명령을 설정하여 작업 관리자 또는 프로세스 탐색기를 SYSTEM으로 실행하십시오.

AT 12:34 /interactive "C:/procexp.exe"

프로세스 탐색기가 루트 C 드라이브에 있으면 SYSTEM으로 열리고 액세스 거부 오류없이 프로세스를 종료 할 수 있습니다. 앞으로 1 분 정도 설정하면 다음과 같이 나타납니다.


4
이 작업을 시도 할 때 다음 경고가 표시되므로 더 이상 작동하지 않는 것 같습니다. "경고 : 보안 향상으로 인해이 작업은 예상 한 시간에 실행되지만 대화식으로 실행되지 않습니다. 대화식 작업이 필요한 경우 schtasks.exe 유틸리티를 사용하십시오 ( 'schtasks /? '를 참조하십시오. ")
WhiteKnight

0

ntsd 액세스가 거부되면 다음을 시도하십시오.

ZeroWave는 모든 종류의 프로세스에 대한 다단계 종료를 제공하는 간단한 도구로 설계되었습니다.

ZeroWave는 간단한 설치 및 매우 친숙한 그래픽 인터페이스로 인해 사용하기 쉬운 프로그램입니다.

ZeroWave에는 세 가지 종료 모드가 있으며 "INSANE"모드를 사용하면 Windows에서 실행할 수있는 모든 종류의 프로세스를 종료 할 수 있습니다.

ZeroWave가 avp.exe를 죽일 수없는 것 같습니다


0

참고로 때때로 SYSTEM 또는 Trustedinstaller를 사용하여 작업을 종료 할 수 있습니다.)

구글 quickkill_3_0.bat

sc config TrustedInstaller binPath= "cmd /c TASKKILL /F  /IM notepad.exe
sc start "TrustedInstaller"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.