[windows] Windows에서 프로세스를 실제로 종료
때때로 Windows 시스템의 프로그램이 미쳐서 중단됩니다. 작업 관리자를 불러서 “프로세스 종료”버튼을 누르겠습니다. 그러나 이것이 항상 작동하는 것은 아닙니다. 내가 충분한 시간을 시도하면 결국 죽을 것이지만, 나는 그것을 즉시 죽일 수 있기를 정말로 원합니다. 리눅스 kill -9
에서는 프로세스가 죽을 것이라고 보장 할 수있었습니다 .
이것은 또한 배치 스크립트를 작성하는 데 사용될 수 있으며 배치 스크립트를 작성하는 것은 프로그래밍입니다.
일부 거기에 프로그램이나 항상 프로세스를 종료합니다 (Windows)와 함께 제공된 명령은? 무료 타사 응용 프로그램은 괜찮을 것입니다.하지만 처음 앉아있는 컴퓨터 에서이 작업을 수행하고 싶습니다.
답변
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
영원히 잠들 수 있습니다.
답변
taskkill /im myprocess.exe /f
“/ f”는 “force”입니다. PID를 알고 있다면 다음과 같이 지정할 수 있습니다.
taskkill /pid 1234 /f
많은 다른 옵션이 가능합니다. taskkill /? 그들 모두를 위해. “/ t”옵션은 프로세스 및 모든 하위 프로세스를 종료합니다. 그것은 당신에게 유용 할 수 있습니다.
답변
답변
JosepStyons가 옳습니다. cmd.exe를 열고 실행하십시오.
taskkill /im processname.exe /f
오류가 발생하면
오류 : PID가 1234 인 “process.exe”프로세스를 종료 할 수 없습니다. 이유 : 액세스가 거부되었습니다.
그런 다음 관리자 권한으로 cmd.exe를 실행하십시오.
답변
sysinternals (현재 Microsoft)에서 프로세스 탐색기 가져 오기
답변
제대로 작동하는 한 가지 트릭은 디버거를 연결 한 다음 디버거를 종료하는 것입니다.
XP 또는 Windows 2003에서는 기본 제공되는 ntsd를 사용하여이 작업을 수행 할 수 있습니다.
ntsd -pn myapp.exe
ntsd는 새 창을 엽니 다. 창에 ‘q’를 입력하면 디버거가 종료되고 프로세스가 종료됩니다.
작업 관리자가 프로세스를 죽일 수없는 경우에도 작동하는 것으로 알고 있습니다.
불행히도 ntsd는 Vista에서 제거되었으며 적절한 디버거를 얻으려면 Windows 용 (무료) 디버깅 도구 를 설치해야합니다 .
답변
AT 명령을 설정하여 작업 관리자 또는 프로세스 탐색기를 SYSTEM으로 실행하십시오.
AT 12:34 /interactive "C:/procexp.exe"
프로세스 탐색기가 루트 C 드라이브에 있으면 SYSTEM으로 열리고 액세스 거부 오류없이 프로세스를 종료 할 수 있습니다. 앞으로 1 분 정도 설정하면 다음과 같이 나타납니다.