No System Monitor, qual é a diferença entre Kill Process e End Process?

14

Quando eu quero finalizar um processo via System Monitor, são apresentadas duas maneiras rápidas: Finalizar processo e finalizar processo. Qual é a diferença entre esses dois?

Luis Alvarado
fonte

Respostas:

9

De acordo com o manual do System Monitor, você normalmente deve usar "Finalizar processo" e, somente se isso falhar, "Kill Process":

Você normalmente encerra um processo apenas se não puder finalizá-lo normalmente, conforme descrito em Para finalizar um processo.

Em um nível técnico, isso me faz pensar que o Processo Final envia um SIGQUIT, que permite que o processo intercepte e execute a limpeza, se necessário, mas se isso falhar, o Kill Process deve enviar um SIGKILL que deve finalizar violentamente o processo, sem chance de recuperação. Use moderadamente!

roadmr
fonte
6
SIGTERM é a maneira "educada" de fechar um programa, que é o que "Finalizar processo" envia. gnu.org/software/libc/manual/html_node/Termination-Signals.html
Rick
8

Também fiquei curioso, então apenas naveguei pelo código-fonte e encontrei o abaixo em application.cpp . Há mais nesse código, mas acho que eles se correlacionam com as opções, pelo menos para o System Monitor 3.8.2.1 a 3.19.3:

  • Stop Process = SIGSTOP ( sinal de pausa , vamos continuar mais tarde com SIGCONT, não mata o processo)
  • Finalizar processo = SIGTERM ( sinal de término , da maneira correta, o aplicativo pode interceptar esse sinal e iniciar tarefas de desligamento, como limpeza de arquivo temporário)
  • Processo de interrupção = SIGKILL ( sinal de interrupção, extremo, use apenas se o SIGTERM não funcionar, não iniciará tarefas de desligamento)

Veja esta pergunta no Quora sobre os sinais SIGINT, SIGTERM, SIGKILL e SIGSTOP para obter uma boa explicação sobre todos os sinais de interrupção / interrupção / encerramento e suas diferenças.

Destaque do código-fonte

Elijah Lynn
fonte