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.
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.
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.
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.)
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)
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.
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.
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.
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
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