Taskkill / f não mata um processo


139

Quando inicio uma instância Experimental do VS do VS para depuração e paro a depuração (às vezes diretamente do VS pai), um processo zombile devenv.exe permanece em execução, o que não consigo eliminar. Ele se apega a muitas das minhas dlls.

Como estou conectado a esta máquina Win7 de 64 bits como administrador, esperaria poder matar qualquer processo que desejasse.

I tried (from Administrator command prompt):

End Task from Task Manager.
TASKKILL /F /IM devenv.exe
PSKILL devenv.exe

Nenhum devolver qualquer erro e TASKKILLe PSKILLmensagens de sucesso devolvidos de terminação / matar o processo. Mas o devenv.exe ainda é executado, não é gerado novamente como oPID permanece constante. Ele desaparece apenas na reinicialização do sistema, o que não é uma ótima solução.

Nota. O LockHunter mostra que o devenv tem um bloqueio em si mesmo. E não pode desbloqueá-lo.

O Process Monitor mostra que o devenv está em algum tipo de loop 'Process Profiling'

A captura de tela acima é a saída do Process Monitor mostrando que o devenv está em algum tipo de loop 'Process Profiling' (clique com o botão direito do mouse e clique em Abrir imagem em uma nova guia para vê-la corretamente).

Alguma idéia de como matar esse processo no Windows?


Não faço ideia por que você não recebe um erro, mas para verificar uma coisa: Você chamou esses comandos em um prompt de comando elevado? Caso contrário, os comandos não serão executados com privilégios de administrador, mesmo que sua conta os possua. (Isto não deve permitir o seu regresso sucesso quando eles claramente falhou embora;))
Svens

1
sim, todos os comandos foram executados a partir de prompts de comando do administrador.
dushyantp 21/09/12

3
Esse tipo de pergunta é mais apropriado no superuser.com . Sim, eles têm boas explicações lá. Este me ajudou.
21712 Jarekczek

Respostas:


81

você deve matar o processo filho também, se houver algum para matar com êxito o seu processo

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process

25
Ele imprime duas mensagens de sucesso no meu caso, mas o processo ainda está lá. Que diabos?
CodeManX

3
se isso seria tão fácil :) não, não ajuda. Eu acho que o problema dele é porque o processo inábil está em algum loop (soquete, E / S, tubos ...) onde o processo principal é o processo do sistema e matá-lo tornará o sistema instável. Nesse caso, eu recomendaria primeiro entender qual loop é o processo. Em seguida, se esse loop for troca de rede com outro ponto de extremidade, basta desconectar o cabo de rede ou desconectar a conexão já estabelecida.

75
Eu recebo um There is no running instance of the task processo que realmente não quer morrer!
Demongolem

1
ainda me ajuda hoje, embora eu também precise matar o "filho da criança": taskkill / f / T / PID 4172 ==> ERRO: O processo com o PID 4172 (processo filho do PID 4724) não pôde ser encerrado. ==> taskkill / f / T / PID 4724 ==> Concluído
Hoàng Long

1
Yay para o /Tinterruptor mencionado acima !
precisa saber é o seguinte

34

Os métodos taskkill e powershell (kill) não funcionaram para mim; ainda dizia "Acesso negado".

Eu tive melhor sorte com isso:

wmic process where "name='myprocessname.exe'" delete

6
ERRO: Descrição = consulta inválida
user1133275 10/11

51
Windows-10. Também: ERROR: Description = Access denied(Usando o Admin Console btw)
FractalSpace 11/11

1
Obrigado! Isso funcionou como um encanto para o meu npm preso
Eduardo Elias Saleh

1
Incrível, muito obrigado. Passei uma hora matando antes de encontrar isso #
Derek MC

2
Este ainda não funciona no meu caso. Tenha um Visual Studio preso nos processos, executou o comando e ele está excluindo a instância \\ MyMachine \ ROOT \ CIMV2: Win32_Process.Handle = "6420", exclusão de instância bem-sucedida. Mas, após 5 minutos, ainda vejo o processo VS devenv.exe na lista do gerenciador de tarefas. Acho que nada além de uma reinicialização é a única solução para mim.
Wctiger

30

Só tive o mesmo problema no Windows Server 2008 R2 e nada ajudou, não o gerenciador de tarefas ou o talento para as tarefas. Mas, o Windows PowerShell é executado como administrador, trabalhando com "kill -id pid"


3
Isso funcionou para mim ... embora parecesse haver um atraso de cerca de 30 segundos antes do processo realmente desaparecer, então, a princípio, pareceu falhar. No caso que tive, foi um processo criado procedimentalmente por outro aplicativo enquanto o sistema estava com poucos recursos. O Process Explorer, matar a árvore de processos e várias outras coisas não funcionaram, mas isso funcionou.
J. Paulding

4
Não funcionou para mim, me deu um erro incapaz de processo de matar etc etc
rboy

@rboy. Eu sei que é velho, mas apenas no caso de alguém ver isso fazer o que eu fiz. Abra o PowerShell como administrador e execute-o. No começo, eu o executei não como administrador e ele me disse que não poderia fazê-lo. Então, eu o executei como administrador e funcionou.
Chris Jones

Isso funcionou para mim no Windows 10 com um serviço do Windows que se comporta mal. Já tinha tentado CMD, neste caso PowerShell é a ferramenta certa
ThetaSinner

5
Sem sorte para mim, mesmo depois de esperar por mais de 2-3 minutos. nenhum do comando está funcionando para mim atualmente
Tarun Gupta

28

Reiniciar é a única solução que funcionou para mim (até agora).

O sempre excelente Mark Russonovich tem uma boa explicação para processos inabaláveis.

Para resumir, é bem possível que seja devido a solicitações de E / S não processadas que não foram tratadas adequadamente (por um driver de dispositivo que seu programa possivelmente acessou)

http://blogs.technet.com/b/markrussinovich/archive/2005/08/17/unkillable-processes.aspx


1
O que fiz foi desligá-lo e, em seguida, reiniciá-lo.
Gellie Ann

9

Eu sei que é tarde, mas taskkill /im devenv.exe /t /fdeve funcionar. o /tfilho mata processos também.


12
Isso não parece funcionar para mim. Diz que é bem-sucedido, mas o processo ainda aparece.
11118 Scott-Locklock-

2
Eu estou enfrentando um problema semelhante também, mas com serviço FTP Microsoft, diz terminada, mas continua a funcionar figura não pode it out
rboy

1
Se em vez de /IM devenv.exeusar /PID 17888, o erro basicamente dizia que 17888 é filho de 17880 e 17880 não está sendo executado e, portanto, não pode ser morto.
Jesse Chisholm

isso funciona, mas verifique se você está usando o cmd no modo de administrador.
karan

Não funcionou para mim, tentando excluir o processo do Windows Defender que usa quase 100% do acesso ao disco.
David Spector

7

No meu caso, depois de vários dias de luta contra esse problema (estava acontecendo com os processos do VirtualBox e µTorrent), descobri que era causado por um problema de driver de rede, provocado pelo patch KB4338818 do Windows Update (Windows 7 x64). Depois de desinstalar esse patch, tudo voltou ao normal. Eu apenas pensei que poderia ser útil para os outros.


Como você descobriu que a atualização a causou? Eu acho que nunca teria descoberto isso. ^^'
das Keks

1
Percebi que a única coisa que mudou na minha máquina antes que o problema se tornasse aparente foram as atualizações, então verifiquei qual era minha última atualização e li as notas de versão. Parecia suspeito e revirei para ver se o problema estava resolvido, qual era. Então li em alguns fóruns do Apache, não me lembro qual, que esta atualização também causou problemas para eles. BTW: A última atualização do Windows a partir de 2018 / ago / 10 corrige o problema com o KB4338818, para que ele possa ser instalado novamente.
Danita

6

Eu poderia resolver meu problema solucionando esse problema matando o explorer.exe, que por sua vez era viciado no processo que eu queria matar. Eu acho que isso também pode acontecer se os processos abrirem interfaces via gancho, que podem estar bloqueados.


1
Tentei matar e reiniciar o explorer.exe e isso não funcionou.
11118 Scott Whitlock #

Quando fiz taskkill /IM "process_name" /T /Fparte da resposta foi: (child process of PID xxxx)verifiquei o PID e o explorer.exe. Reiniciá-lo resolveu meu problema.
Facundo Colombier

5

Eu já vi isso algumas vezes e minha única solução foi uma reinicialização.

Você pode tentar usar o PowerShell: Get-Process devenv | mate

Mas se os outros métodos falharem, provavelmente isso também ocorrerá. :-(


Infelizmente sim! Para mim também é o caso. você já teve alguma solução?
manocha_ak

Não funcionou para mim no win10: PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip | mate PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> echo $? PS verdadeiro: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip manipula NPM (K) PM (K) CPU (s) WS (K) CPU (s) ID SI ProcessName ------- - ---- ----- ----- ------ - - ----------- 0 0 56 20 0,00 41236 1 NSPRip
zhaorufei

4

Nativo tskill <pid>(ou tskill.exe <pid>) funcionou para mim no Windows 10, onde nenhuma outra resposta nativa funcionou.

No meu caso, eu tinha alguns processos chrome.exe nos quais a 'Tarefa Final' do gerenciador de tarefas estava funcionando, mas taskkill /F /T /PID <pid>nem o PowerShellkill -id <pid> funcionou (mesmo com os dois shells executados como admin).

Isso é muito estranho, pois taskkillé suposto ser uma versão melhor da API e faz mais tskill.

No meu caso, para matar todas as instâncias de uma determinada tarefa que usei FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i


1
Isso funcionou para mim, quando nenhum dos outros funcionou. Thx: D
jk1990

3
Não funcionou para mim. GotEnd Process failed for 10576:Access is denied.
twasbrillig

Acontecendo o mesmo para mim. O que não consigo entender é por quê? o taskkill deve ser o mesmo que o tskill [melhor ainda, na documentação etc.]. Se alguém pudesse responder?
dvlper

1
Parece que não há nenhuma dificuldade no Windows 10
raffaem 2/19/19

Não funcionou para mim, tentando excluir o processo do Windows Defender que usa quase 100% do acesso ao disco.
David Spector

3

Vou sugerir algo aqui, porque recentemente enfrentei o mesmo problema e tentei todas as coisas possíveis nas respostas, mas nada funcionou. Eu estava recebendo erros como

ERRO: O processo com o PID 23908 não pôde ser finalizado. Razão: Não há instância em execução da tarefa.

usando o prompt de comando. Power shell também não foi útil. simplesmente executaria os comandos e nenhuma resposta com o processo ainda em execução.

Até eu decidir excluir o arquivo '.exe' associado. Como o arquivo estava ativo, o Windows não permitia a exclusão, mas nessa janela de aviso, fornecia o nome do processo que estava atrasando a tarefa que eu queria matar. Eu era capaz de matar a tarefa original e, portanto, o processo de buggy.

Definitivamente vale a pena tentar se nenhuma das soluções funcionar.


3

Eu estava obtendo os seguintes resultados com taskkill

>taskkill /im "MyApp.exe" /t /f
ERROR: The process with PID 32040 (child process of PID 54176) could not be terminated.
Reason: There is no running instance of the task.

>taskkill /pid 54176  /t /f
ERROR: The process "54176" not found.

O que funcionou para mim foi o sysinternal pskill

>pskill.exe -t 32040

PsKill v1.15 - Terminates processes on local or remote systems
Copyright (C) 1999-2012  Mark Russinovich
Sysinternals - www.sysinternals.com

Process 32040 killed.

Você pode obter pskilla partir de site ao vivo do Sysinternal


2
Não funcionou para mim. Tenho:Unable to kill process 10576: Access is denied.
twasbrillig

1
Você pode precisar fazer isso a partir de um shell de comando com direitos de administrador?
BenV136 3/01/19

2

Alguns dos arquivos Exe dependem de alguns serviços,

Então, você precisa encontrar o respectivo serviço e parar primeiro.


4
alguma dica sobre como resolver isso? No taskmanager, ele não mostra nenhum serviço correspondente ao devenv.exe No momento, estou tentando recriar o problema. Uma vez feito, usarei o Process Explorer para cavar nos serviços que poderiam estar segurando.
dushyantp 21/09/12

2

O mesmo problema aconteceu comigo no VirtualBox em relação aos processos Java.

No meu caso, isso ocorreu devido a um bug no patch do Windows Update KB4338818 (Windows 7 x64).

Eu o resolvi fazendo o seguinte:

  • Desinstalar o patch do Windows Update KB4338818
  • Instale o patch do Windows Update KB4338821

2

Executar como administrador funciona para mim:

1. pesquisa cmdno windows

2. clique com o botão direito do mouse em cmdselecione como "Executar como administrador"

3)netstat -ano | findstr :8080

4)taskkill/pid (your number) /F

Meu resultado


Se você receber um erro como: 'nestat' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote. pode ser necessário executar o comando como C: \ Windows \ system32 \ netstat.exe em vez de apenas nestat
sk8asd123

2

Para mim, a maneira como funcionou é que tenho que matar o processo pai. Descobrir o processo pai e matá-lo

taskkill /IM "parent_process_name.exe" /T /F

1

Eu tenho o problema com processos depurados com gdb em Code :: Blocks. Assim que ele é interrompido enquanto acidentalmente entra em instruções fora do escopo de suas fontes (como bibliotecas sem fontes ou funções do sistema), você não pode sair da depuração nem no Code :: Blocks nem no Task-Manager.

Eu acho que é um erro na implementação do gdb no Code :: Blocks, mas também pode estar no gdb;)

Minha solução:

taskkill /F /IM process.exe /T

Isso mostra o PID do processo pai. Agora mate o pai:

taskkill /PID yyyy

Ambos se foram.

Feito.


1
É possível que o PID pai não exista.
user1133275

Por favor, especifique o que são gdb e Code :: Blocks;)
bluish

3
Aviso: se o processo pai estiver services.exematando o pai, isso pode causar BSOD
MM

1

se taskkill /F /T /PID <pid>não funcionar. Tente abrir o terminal por Run as Administrator.

Pesquise cmdno seu menu do Windows, clique com o botão direito do mouse Run as Administratore execute o comando novamente. Isso funcionou para mim.


1

Se você baixar o pacote sysinternals gratuito, ele possui um aplicativo pskill.exe que funciona bem para esses tipos de tarefas: pskill.exe "process_name" Ele funciona nesses processos mesmo sem usar a opção -t.


1

Eu fiz o seguinte, em um PowerShell elevado:

PS C:\Windows\system32> wmic.exe /interactive:off process where "name like `'java%'`" call terminate

Saída do comando:

Executing (\\SRV\ROOT\CIMV2:Win32_Process.Handle="3064")->terminate()
Method execution successful.

Parâmetros de saída:

instance of __PARAMETERS
{ReturnValue = 0; };

Eu tenho algumas informações de sintaxe em: https://community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb


Isso realmente funcionou, deve ser aceita resposta. Obrigado
John Newman

0

O NirCmd da NirSoft fez o trabalho para mim:

nircmd killprocess "process name.exe"

A página do manual killprocess está aqui .


0

Eu enfrentei o mesmo problema em que iniciei um aplicativo de nó na porta 3000 e ele não foi fechado corretamente e o processo continuou em execução mesmo após a reinicialização.

Nenhum dos comandos de taskkill ou powershell em execução no modo Administrador funcionou para mim.

Eu usei o MS Process Expoler> Propriedades> Imagem> Diretório atual (que deveria ser o diretório do meu projeto).

Finalmente, tive que reiniciar o SafeMode e renomear a pasta do projeto e reiniciar. Os processos do Nó que estavam consumindo a porta 3000 se mataram.


0

Eu tinha exatamente o mesmo problema, encontrei essa correção em outro site: powershell.exe "Get-Process processname | Stop-Process" funcionou para mim e eu estava no mesmo barco em que precisei reiniciar, o / T não funcionaria .


0

Como Francisco mencionou, algum processo não pode ser encerrado por causa de

"solicitações de E / S não processadas"

Na minha experiência, eu estava lidando com um driver gráfico de buggy que faria com que meu jogo travasse e não pudesse fechá-lo, como último recurso, desativei o driver gráfico e o processo finalmente foi embora.

Se o seu aplicativo estiver aguardando um recurso do driver, como wifi ou gráfico, tente desabilitá- lo no gerenciador de dispositivos , você precisará se aprofundar um pouco para ver onde eles estavam.

Obviamente, isso não é recomendado, mas às vezes você não tem mais nada a perder.


0

Eu tive o mesmo problema e, como muitos outros aqui disseram, nenhum dos comandos normais de Kill funcionou. Meu arquivo de problema era um executável que estava sendo executado a partir de um compartilhamento de rede por um usuário em um Servidor de Área de Trabalho Remota. Com vários usuários compartilhados, não é fácil reiniciar durante um dia útil. Mesmo quando o usuário efetuou logoff do exe ainda estava listado no Gerenciador de Tarefas. Enviei para o servidor em que a pasta estava compartilhada e em Gerenciamento do Computador -> Sessões, encontrei o usuário com a sessão ainda aberta nesse servidor RDP, mesmo que ele estivesse desconectado. Clique com o botão direito do mouse -> Fechar sessão e o bloqueio do arquivo foi liberado.

Bate-me porque eu não pude terminar as tarefas. A mensagem de erro que recebi originalmente quando tento excluir o arquivo foi "A ação não pode ser concluída porque o arquivo está aberto no sistema"

Espero que isso ajude outra pessoa.


0

No meu caso, nenhuma das soluções aqui funcionou. Acabei descobrindo que o programa em questão estava congelado ao tentar pesquisar interfaces de áudio USB. Portanto, desconectei um DAC USB que havia conectado e, para minha surpresa, o aplicativo foi fechado instantaneamente. A resposta de Francis menciona que poderia ser o resultado de "solicitações de E / S não processadas que não foram tratadas adequadamente (por um driver de dispositivo que seu programa possivelmente acessou)", o que pode explicar por que isso foi corrigido.

Suponho que realmente depende do que o programa estava fazendo quando congelou, mas se nenhuma das outras soluções estiver funcionando, tente desconectar todos os dispositivos USB para ver se um deles pode ser a causa.



-8
  1. gerenciador de tarefas aberto
  2. guia selecionar serviços
  3. selecione o processo (devenv.exe) que deseja matar e clique no botão de serviços
  4. logo no processo, selecione propriedades e desative-o ...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.