Como o Windows mata um processo, exatamente?

8

Não estou familiarizado com a forma como os processos são eliminados no Windows. No Linux, um kill "quente" envia um sinal (15) que o processo pode manipular instanciando um manipulador de sinal. Um cold kill é o sinal (9) que o SO manipula ao matar o processo com força.

Como posso "matar" um processo no Windows? Como é tratado pelo sistema operacional e pelo processo? Quais ações o sistema operacional executa? Existe uma maneira multiplataforma de responder a uma solicitação kill / close?

    
por IttayD 14.06.2010 / 22:27

3 respostas

9

"Finalizar tarefa" (e taskkill ) parece postar uma mensagem WM_CLOSE nas janelas do programa. (O mesmo é feito quando você clica no botão × "Fechar".) Se o programa não sair em algum tempo, o usuário é solicitado a encerrar o programa com força.

"Processo de eliminação" e taskkill /f usam TerminateProcess() .

por 16.06.2010 / 18:57
0

A Sysinternals (agora parte da Microsoft) oferece um utilitário chamado pskill que pode ser usado em a linha de comando para matar processos no sistema local ou em sistemas remotos.

A maneira usual de eliminar processos no Windows em um ambiente de GUI é usar o Gerenciador de Tarefas.

    
por 14.06.2010 / 23:30
-1

com o cygwin, você pode usar um cross-mate kill!

    
por 14.06.2010 / 22:45