¿Cómo puedo matar un proceso imposible de matar?

13

Cerré una aplicación, pero el proceso permaneció en la lista. Intento detenerme desde el administrador de tareas, pero no pasa nada. No hay mensajes de error, el proceso solo permanece en la lista. Intento depurarlo, pero el depurador dice:

No se puede adjuntar al proceso de bloqueo. La operación solicitada no es compatible.

Esto sucede con VS2008 y algunos otros programas, a veces.

¿Cómo terminarlo?

skevar7
fuente
Esa es una de las razones por las que me cambié a Linux. Aunque experimenté este problema con Win XP, parece que no ha cambiado desde entonces.
petersohn
44
De acuerdo con samba.2283325.n4.nabble.com/…, existe exactamente la misma situación en Linux: los procesos que esperan en el núcleo son imposibles de matar. Esta es una de las razones por las que cambié a Windows.
ta.speot.is
El artículo de Mark Russinovich "Procesos imposibles de eliminar " dice que puede utilizar una herramienta de depuración de kernel local para descubrir por qué un proceso no se puede eliminar. El artículo te da instrucciones sobre qué hacer. Necesitará las herramientas de depuración gratuitas para Windows .
unforgettableidSupportsMonica

Respuestas:

12

Desafortunadamente, el único recurso real es reiniciar.

También tuve este problema, y ​​no pude encontrar absolutamente ninguna manera de matar con éxito el proceso fallido. Probé casi todas las aplicaciones pskill / similares que pude encontrar, y todas fallaron.

Según tengo entendido, la causa más común de este problema es cuando el proceso infractor carga un controlador del sistema y luego le envía una solicitud que no se completa. Aparentemente, el núcleo no puede desasignar correctamente la memoria del proceso cuando se cierra porque el controlador bloqueado está en un estado de espera de E / S que requiere acceso al espacio de direcciones del proceso.

(Principalmente cunada de) http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

Nombre falso
fuente
2
Sí, esa es ciertamente la causa más común de este tipo de cosas. La mayoría de los procesos imposibles de matar que he visto estaban relacionados con la unidad de CD (por ejemplo EAC.EXE) o el sintonizador de TV / tarjeta de video (por ejemplo ATIMMC.EXE). En ambos casos, se trata de una falla del conductor, y cualquiera que haya aprendido y realizado el trabajo del conductor sabrá cuán problemáticas pueden llegar a ser ese nivel y qué tipo de efectos aparentemente "extraños" pueden tener en el país de usuario (los BSOD al menos son definitivo y claro).
Synetech
1
@ Synetech inc. - Todos los problemas que tuve estaban relacionados con el disco, o en un software que realmente no necesitaba un controlador (no tengo idea de por qué decidieron que necesitaban ejecutarse en el núcleo). No creo que pueda hacer ninguna declaración general sobre qué tipo de software tiene con mayor frecuencia fallas imposibles de eliminar.
Nombre falso
3

Process Hacker tiene un comando Misceláneo → Terminator que probará varios métodos diferentes para matar su proceso:

fallando en la mayoría de los intentos

descripciones completas

En mis pruebas, todo lo que hice fue bloquear Process Hacker y convertirlo en un proceso que no se puede matar también, pero tal vez funcione en algunos casos.

endolito
fuente
2
Terminator se ha eliminado de Process Hacker y se ha movido a un complemento. Hubo un hilo del foro al respecto. El responsable afirmó: "Terminator es inútil ... porque no es más efectivo que la funcionalidad de terminación normal". Algunas personas respondieron y no estuvieron de acuerdo.
unforgettableidSupportsMonica
Más tarde, dmex movió Terminator a un complemento. El código fuente está aquí . Al escribir estas líneas, no hay binaria todavía . Cuando se lanza el binario, se publicará en la página de lanzamientos de dmex .
unforgettableidSupportsMonica
1
Presenté una solicitud de función en este momento, solicitando una versión compilada de Terminator. Por ahora, supongo que podría usar cualquier versión de Process Hacker anterior a 2.39. Por ejemplo, podría usar la versión 2.38, que está disponible aquí .
unforgettableidSupportsMonica
También existe la opción de que se haya conectado un depurador y esa es la razón para no matar. Miscellaneous lo detecta y agrega el depurador de
separación
2

A veces, el proceso puede bloquearse en un recurso o subproceso o algo, y dejarlo o liberarlo libera el proceso y lo deja finalizar. Es algo similar a cómo cuando elimina (en la papelera de reciclaje) un archivo en el Explorador que está en uso, en realidad no desaparece y parece atascado (sin devolver inmediatamente un error en uso / bloqueado), pero si salga del programa que lo tiene bloqueado en cinco segundos, el archivo desaparece repentinamente.

He visto que esto sucede en ocasiones, especialmente con programas que tienen un cuadro de diálogo emergente o algo que de alguna manera se oculta; encontrar una manera de descartar el diálogo permite que el hilo finalice, permitiendo así que el proceso finalice.

Sospecho que con el aumento, aunque todavía relativamente nuevo, de la práctica de programación multiproceso, cosas como esta se volverán más comunes, al menos por un tiempo.

Synetech
fuente
0

Es probable que los programas que está utilizando se hayan desarrollado antes de Windows Vista / 7 y sean incompatibles con los cambios realizados.

Su mejor opción es ubicar el ejecutable para los programas que tienen este problema, haga clic derecho, vaya a propiedades, luego seleccione compatibilidad, finalmente seleccione Windows XP como modo de compatibilidad.

Daisetsu
fuente
0

inicie CMD como administrador y use taskkill para forzarlo. Ejemplo:

taskkill / F yourprogram.exe

O

taskkill / F / im yourprogram.exe

Si está atascado en la sintaxis de CMD taskkill, escriba taskkill /?

Ethan J.
fuente
1
¡Bienvenido a Super User! Aunque esto puede ayudar a resolver el problema, no explica por qué y / o cómo aborda el problema. Proporcionar este contexto adicional mejoraría significativamente su valor educativo a largo plazo. Edite su respuesta para agregar una explicación, incluido qué hacen los parámetros y qué limitaciones y suposiciones se aplican. Gracias.
Fixer1234
ERROR: el proceso "AutoHotkeyU64_UIA.exe" con PID 16872 no se pudo finalizar. Motivo: no hay una instancia en ejecución de la tarea.
Shayan