Realmente matando un proceso en Windows


De vez en cuando un programa en una máquina Windows se vuelve loco y simplemente se cuelga. Así que voy a llamar al administrador de tareas y pulse el botón" Finalizar proceso " para ello. Sin embargo, esto no siempre funciona; si lo intento suficientes veces, generalmente morirá eventualmente, pero realmente me gustaría poder matarlo inmediatamente. En Linux podría simplemente kill -9 para garantizar que un proceso va a morir.

Esto también podría usarse para escribir scripts por lotes y escribir scripts por lotes es programación.

¿Hay algún programa o comando que viene con Windows que siempre matará un proceso? Una aplicación gratuita de terceros estaría bien, aunque preferiría poder hacer esto en máquinas en las que me siento por primera vez.

 337
Author: Matas Vaitkevicius, 2008-09-08

8 answers

"Finalizar proceso" en la pestaña Procesos llama a TerminateProcess que es la forma más definitiva que Windows conoce para matar un proceso.

Si no desaparece, actualmente está bloqueado esperando algún recurso del núcleo (probablemente un controlador con errores) y no hay nada (excepto un reinicio) que pueda hacer para que el proceso desaparezca.

Echa un vistazo a este blog-entrada de wayback cuando: http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

Basado en Unix los sistemas como Linux también tienen ese problema donde los procesos podrían sobrevivir a un kill -9 si están en lo que se conoce como "Suspensión ininterrumpida" (mostrado por top y ps como estado D) en cuyo punto los procesos duermen tan bien que no pueden procesar señales entrantes (que es lo que hace kill: enviar señales).

Normalmente, el sueño ininterrumpido no debería durar mucho tiempo, pero como en Windows, los controladores rotos o los programas de espacio de usuario rotos (vfork sin exec) pueden terminar durmiendo en D para siempre.

 302
Author: pilif,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-15 18:55:51
taskkill /im myprocess.exe /f

La "/f" es para "force". Si conoces el PID, entonces puedes especificarlo, como en:

taskkill /pid 1234 /f

Muchas otras opciones son posibles, simplemente escriba taskkill/? para todos ellos. La opción "/ t " mata un proceso y cualquier proceso hijo; eso puede ser útil para usted.

 211
Author: JosephStyons,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-08 15:49:17

Hacker de Procesos tiene numerosas formas de matar un proceso.

(Haga clic con el botón derecho en el proceso, luego vaya a Miscellaneous->Terminator.)

 35
Author: Mehrdad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-17 06:04:40

Obtener el explorador de procesos de sysinternals (ahora Microsoft)

Process Explorer - Windows Sysinternals / Microsoft Docs

 22
Author: Iain Holder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-03 10:36:29

JosepStyons tiene razón. Abre cmd.exe y run

taskkill /im processname.exe /f

Si hay un error diciendo,

ERROR :El proceso " proceso.exe " con PID 1234 no podía ser terminado. Motivo: Acceso denegado.

Luego intente ejecutar cmd.exe como administrador.

 19
Author: Dhruv Chandhok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-16 22:05:32

Un truco que funciona bien es adjuntar un depurador y luego salir del depurador.

En XP o Windows 2003 puede hacer esto usando ntsd que se envía fuera de la caja:

ntsd -pn myapp.exe

Ntsd abrirá una nueva ventana. Simplemente escriba ' q ' en la ventana para salir del depurador y sacar el proceso.

He sabido que esto funciona incluso cuando el administrador de tareas no parece capaz de matar a un proceso.

Desafortunadamente, ntsd se eliminó de Vista y debe instalar la depuración (gratuita) herramientas para windows para obtener un depurador adecuado.

 15
Author: Rob Walker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-08 16:00:11

Configure un comando AT para ejecutar el administrador de tareas o el explorador de procesos como SISTEMA.

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

Si process explorer estaba en su unidad raíz C, entonces esto lo abriría como SISTEMA y podría matar cualquier proceso sin obtener ningún error de acceso denegado. Establezca esto por un minuto en el futuro, luego aparecerá para usted.

 6
Author: David Ruark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-15 16:46:03

Cuando se deniega el acceso ntsd, intente:

ZeroWave fue diseñado para ser una herramienta simple que proporcionará una terminación multinivel de cualquier tipo de proceso.

ZeroWave también es un programa fácil de usar debido a su sencilla instalación y su interfaz gráfica muy amigable.

ZeroWave tiene tres modos de terminación y con el modo "INSANE" puede terminar cualquier tipo de proceso que pueda ejecutarse en Windows.

Parece que ZeroWave no puede matar a avp.exe

 0
Author: diyism,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-13 05:06:01