No Windows, como posso solicitar normalmente que um programa em execução seja encerrado?


17

No Unix ou Linux, é fácil solicitar normalmente que um aplicativo em execução termine: você envia o sinal SIGTERM. Se o ID do processo for 1234, você pode simplesmente executar kill 1234ou kill -s TERM 1234ou kill -15 1234.

Como posso fazer a mesma coisa no Windows?

Se bem me lembro, o recurso "Finalizar tarefa" do Gerenciador de tarefas (não o recurso "Finalizar processo") costumava fazer o que eu queria. Mas, a partir do Windows 8.1, não é mais tão gentil; quando uso o recurso, ele perde dados não salvos.

Não quero escrever nenhum código para fazer isso. Se eu fizesse, eu perguntaria no Stack Overflow. :)


2
Se você é desenvolvedor de software e deseja fazer isso de forma programática, consulte a pergunta Stack Overflow relacionada sobre como solicitar normalmente que um processo seja encerrado .
usar o seguinte

4
Não há nada de gracioso no Windows ........
Moab

Respostas:


17

taskkill.exe

Andy E escreve que você pode usar taskkill.exe.

Para finalizar o processo com o ID do processo 1234:

taskkill /pid 1234

Para finalizar o notepad.exe:

taskkill /im notepad.exe

Para mais ajuda:

taskkill /?

Ele adiciona:

O /fswitch forçaria a interrupção, mas não usá-lo apenas envia o sinal de finalização, para que o aplicativo seja fechado normalmente.

Ele tem razão. Tentei usar taskkill.exe (sem /f) para finalizar o Bloco de Notas, e funcionou como esperado. O Bloco de Notas me perguntou se eu queria ou não salvar o texto não salvo que eu havia inserido.

Estou usando a versão inicial do Windows 8.1. Parece que taskkill.exefoi incluído no Windows sem nenhum custo extra. Está dentro c:\windows\system32.

Ou simplesmente saia

Se você não quiser se preocupar com nada disso, basta sair da sua conta de usuário do Windows e depois fazer login novamente.

Aplicativos de console

Em relação aos aplicativos de console (por exemplo, PowerShell), Chris Becke acrescenta :

Não existe uma maneira real de fechar aplicativos de console normalmente no Windows. Eles precisam suportar algum tipo de mecanismo de fechamento gracioso.


Observe que isso não replica exatamente o que acontece no logout ou desligamento; para isso, consulte stackoverflow.com/questions/520910/…
Matt McHenry

5

Você pode usar rmlogotest.exe(a ferramenta de teste do logotipo do Restart Manager). Este utilitário de freeware, escrito pela Microsoft, faz parte do Windows App Certification Kit.

Para obter a versão mais recente do Windows App Certification Kit, baixe e execute o instalador do Windows SDK. (Você pode encontrar o instalador mais recente do Windows SDK fazendo uma pesquisa no Google.) Desmarque todas as caixas, exceto a caixa Kit de certificação de aplicativos do Windows. Aguarde o download e instalação do kit. Se bem me lembro, o kit tem algumas centenas de megabytes.

rmlogotest.exeprovavelmente estará presente C:\Program Files (x86)\Windows Kits\10\App Certification Kitse você estiver usando a versão 10 do Windows SDK.

Abra um prompt de comando. Mude para o diretório correto. Digite rmlogotestum espaço e o número de identificação do processo do processo.

Se o processo "Reiniciar o Gerenciador ciente", ele rmlogotestserá reiniciado normalmente e informará "Validação do logotipo aprovada". Caso contrário, rmlogotestsolicitará que ele termine normalmente e poderá dizer "Falha na validação do logotipo".

Tentei usar rmlogotest.exepara finalizar o Bloco de Notas e funcionou como esperado. O Bloco de Notas me perguntou se eu queria ou não salvar o texto não salvo que eu havia inserido.

(Caso você queira saber o que é e o que faz o Restart Manager, deixe-me explicar. O Restart Manager faz parte do Windows e é usado pelo Windows Installer 4.0 ou superior. Quando o Windows Installer precisa substituir ou excluir um arquivo aberto, ele usa três Ele diz ao Restart Manager para finalizar normalmente o processo que está usando o arquivo. Ele substitui o arquivo. Depois, diz ao Restart Manager para iniciar o processo novamente.)


0

O GnuWIN32 possui portas do Windows de utilitários comuns do Linux, incluindo kill.exe

http://gnuwin32.sourceforge.net/

Suporta os seguintes sinais por nome ou número

λ kill -l                                                                                                                                                                                                                                                                
INT                                                                                                                                                                                                                                                                      
ILL                                                                                                                                                                                                                                                                      
FPE                                                                                                                                                                                                                                                                      
KILL                                                                                                                                                                                                                                                                     
SEGV                                                                                                                                                                                                                                                                     
TERM                                                                                                                                                                                                                                                                     
CHLD                                                                                                                                                                                                                                                                     
ABRT             
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.