Como posso matar um processo inábil?

13

Fechei um aplicativo, mas o processo permaneceu na lista. Eu tento parar no gerenciador de tarefas, mas nada acontece. Sem mensagens de erro, o processo permanece na lista. Eu tento depurar, mas o depurador diz:

Não foi possível anexar ao processo de falha. A operação solicitada não é suportada.

Isso acontece com o VS2008 e alguns outros programas, às vezes.

Como terminar?

skevar7
fonte
Essa é uma das razões pelas quais mudei para o Linux. Embora eu tenha enfrentado esse problema no Win XP, parece que ele não mudou desde então.
Peterohn
4
De acordo com samba.2283325.n4.nabble.com/…, existe exatamente a mesma situação no Linux - os processos que aguardam no kernel são imbatíveis. Essa é uma das razões pelas quais mudei para o Windows.
ta.speot.is
O artigo de Mark Russinovich, "Processos inábeis", diz que você pode usar uma ferramenta de depuração de kernel local para descobrir por que um processo é inábil. O artigo fornece instruções sobre o que fazer. Você precisará das Ferramentas de depuração gratuitas para Windows .
unforgettableidSupportsMonica

Respostas:

12

Infelizmente, o único recurso real é reiniciar.

Eu também tive esse problema e não consegui encontrar absolutamente nenhuma maneira de eliminar com êxito o processo travado. Eu tentei praticamente todos os aplicativos pskill / similares que eu encontrei, e todos eles falham.

Pelo que entendi, a causa mais comum desse problema é quando o processo incorreto carrega um driver de sistema e envia uma solicitação para que ele não seja concluído. Aparentemente, o kernel não pode desalocar adequadamente a memória do processo quando é fechado porque o driver travado está em um estado de espera de E / S que requer acesso ao espaço de endereço do processo.

(Na maioria das vezes extraído de) http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

Nome falso
fonte
2
Sim, essa é certamente a causa mais comum desse tipo de coisa. A maioria dos processos inábeis que vi foram relacionados à unidade de CD (por exemplo EAC.EXE) ou ao sintonizador de TV / placa de vídeo (por exemplo ATIMMC.EXE). Em ambos os casos, tudo se resume a uma falha no motorista, e qualquer pessoa que tenha aprendido e feito o trabalho do motorista saberá como as coisas podem ser problemáticas nesse nível e que tipos de efeitos aparentemente "estranhos" podem ter na área do usuário (BSODs pelo menos são definitivo e claro).
Synetech
1
@ Synetech inc. - Todos os problemas que tive foram relacionados a disco ou em software que realmente não precisava de driver (não faço ideia do motivo pelo qual eles decidiram executar no kernel). Eu não acho que você possa fazer declarações gerais sobre que tipo de software costuma ter falhas irredutíveis.
Nome falso
3

O Process Hacker possui um comando Diversos → Terminador que tentará vários métodos diferentes para matar seu processo:

falhando na maioria das tentativas

descrições completas

Nos meus testes, tudo o que fiz foi bloquear o Process Hacker e transformá-lo em um processo inábil também, mas talvez funcione em alguns casos.

endólito
fonte
2
O Terminator foi removido do Process Hacker e movido para um plugin. Havia um tópico no fórum sobre isso. O mantenedor afirmou: "O Terminator é inútil ... porque não é mais eficaz do que a funcionalidade normal de encerramento". Algumas pessoas responderam e discordaram.
unforgettableidSupportsMonica
Mais tarde, o dmex mudou o Terminator para um plugin. O código fonte está aqui . Como desta escrita, não há nenhuma binário ainda . Quando o binário for lançado, ele será publicado na página de versões do dmex .
unforgettableidSupportsMonica
1
Enviei uma solicitação de recurso agora, solicitando uma versão compilada do Terminator. Por enquanto, acho que você poderia usar qualquer versão do Process Hacker anterior a 2,39. Por exemplo, você pode usar a versão 2.38, que está disponível aqui .
unforgettableidSupportsMonica
Há também a opção de anexar um depurador e o motivo para não matar é isso. Diversos detecta isso e adiciona o depurador de desanexação
Ghita
2

Às vezes, o processo pode ser bloqueado em um recurso ou thread ou algo assim, e encerrar ou liberar isso libera o processo e o deixa terminar. É um pouco parecido com o de quando você exclui (na lixeira) um arquivo no Explorer que está em uso, na verdade ele não desaparece e parece travado (sem retornar imediatamente um erro em uso / bloqueado), mas se você sair do programa que o bloqueou em cinco segundos, o arquivo desaparece subitamente.

Eu já vi isso acontecer de vez em quando, especialmente com programas que têm uma caixa de diálogo pop-up ou algo que de alguma forma fica oculto; Encontrar uma maneira de descartar a caixa de diálogo permite que o encadeamento termine, permitindo que o processo termine.

Suspeito que, com o aumento da prática ainda relativamente nova da programação multiencadeada, coisas como essa se tornem mais comuns, pelo menos por um tempo.

Synetech
fonte
0

É provável que os programas que você está usando tenham sido desenvolvidos antes do Windows Vista / 7 e sejam incompatíveis com as alterações feitas.

Sua melhor aposta é localizar o executável dos programas com esse problema, clique com o botão direito do mouse, vá para propriedades, selecione compatibilidade e, finalmente, selecione Windows XP como o modo de compatibilidade.

Daisetsu
fonte
0

inicie o CMD como administrador e use o taskkill para forçá-lo. Exemplo:

taskkill / F yourprogram.exe

OU

taskkill / F / im yourprogram.exe

Se você estiver preso na sintaxe do CMD taskkill, digite taskkill /?

Ethan J.
fonte
1
Bem-vindo ao Super Usuário! Embora isso possa ajudar a resolver o problema, ele não explica o porquê e / ou como ele resolve o problema. Fornecer esse contexto adicional melhoraria significativamente seu valor educacional a longo prazo. Edite sua resposta para adicionar uma explicação, incluindo o que os parâmetros fazem e quais limitações e suposições se aplicam. Obrigado.
fixer1234
ERRO: O processo "AutoHotkeyU64_UIA.exe" com PID 16872 não pôde ser finalizado. Razão: Não há instância em execução da tarefa.
Shayan