죽일 수없는 프로세스를 어떻게 죽일 수 있습니까? 않습니다. 오류 메시지가 없으며

응용 프로그램을 닫았지만 프로세스는 목록에 남아있었습니다. 작업 관리자에서 멈추려 고하지만 아무 일도 일어나지 않습니다. 오류 메시지가 없으며 프로세스는 목록에 그대로 있습니다. 디버깅하려고하지만 디버거는 말합니다.

충돌 프로세스에 첨부 할 수 없습니다. 요청한 작업이 지원되지 않습니다.

이것은 VS2008 및 일부 다른 프로그램에서 발생합니다.

종료하는 방법?



답변

불행히도 유일한 유일한 해결책은 재부팅하는 것입니다.

나는이 문제도 가지고 있었고, 충돌 한 프로세스를 성공적으로 죽일 수있는 방법을 찾을 수 없었습니다. 나는 찾을 수있는 모든 pskill / similar 앱을 거의 시도했지만 모두 실패했습니다.

알다시피,이 문제의 가장 일반적인 원인은 문제가있는 프로세스가 시스템 드라이버를로드 한 다음 완료하지 못한 요청을 보냅니다. 충돌 된 드라이버가 프로세스 주소 공간에 액세스해야하는 IO 대기 상태에 있기 때문에 커널은 프로세스가 닫힐 때 프로세스에서 메모리를 올바르게 할당 해제 할 수 없습니다.

(대부분에서 cribbed) http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx


답변

Process Hacker 에는 기타 → 터미네이터 명령이있어 프로세스를 종료하는 여러 가지 방법을 시도합니다.

대부분의 시도에서 실패

자세한 설명

내 테스트 에서이 모든 것은 프로세스 해커를 잠그고 그것을 죽일 수없는 프로세스로 바꾸는 것이지만 경우에 따라 작동 할 수도 있습니다.


답변

때때로 프로세스가 리소스 나 스레드 또는 무언가에서 차단되어 종료하거나 해제하면 프로세스가 해제되고 프로세스가 종료 될 수 있습니다. 사용중인 탐색기에서 파일을 휴지통으로 삭제하면 실제로 사라지지 않고 멈추는 것처럼 보입니다 (사용 중 / 잠금 오류를 즉시 반환하지 않고). 5 초 이내에 잠긴 프로그램을 종료하면 파일이 갑자기 사라집니다.

나는 때때로 팝업 대화가 있거나 어떻게 든 숨겨져있는 프로그램에서 이런 일이 발생하는 것을 보았다. 대화 상자를 닫는 방법을 찾으면 스레드가 종료되어 프로세스가 종료됩니다.

나는 멀티 스레드 프로그래밍의 상대적으로 새로운 연습이 증가함에 따라 이와 같은 것들이 적어도 한동안 더 일반적이 될 것이라고 생각합니다.


답변

사용중인 프로그램이 Windows Vista / 7 이전에 개발되었으며 변경 사항과 호환되지 않을 수 있습니다.

가장 좋은 방법은이 문제가있는 프로그램의 실행 파일을 찾아 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동 한 다음 호환성을 선택하고 마지막으로 Windows XP를 호환 모드로 선택하는 것입니다.


답변

CMD를 관리자로 시작하고 taskkill을 사용하여 강제 종료하십시오. 예:

taskkill / F yourprogram.exe

또는

taskkill / F / im yourprogram.exe

CMD taskkill 구문에 문제가 있으면 taskkill /?를 입력하십시오.


답변