Um serviço deve cancelar e terminar um trabalho incompleto no SIGTERM?

5

Assumindo que o serviço não deixa as coisas em estado "perigoso" ou inconsistente (embora falhas de transporte de tarefas sejam observadas), deve fechar arquivos, conexões e qualquer outro trabalho?

    
por sevo 14.07.2016 / 11:34

1 resposta

4

Sim, deveria. Se isso acontecer ou não, depende do utilitário.

Arquivos e conexões são geralmente fechados quando um programa sai por qualquer motivo, no entanto "outros trabalhos" podem ser deixados pela metade (arquivos temporários podem ser deixados para trás, bancos de dados podem estar em um estado questionável, dados não gravados em arquivos serão perdidos, etc.)

Um programa pode capturar o sinal TERM em um manipulador de sinal e sair graciosamente , ou seja, terminar tudo o que estava fazendo e deixar o mundo em um estado ordenado após a finalização real. Também pode capturar e ignorar completamente o sinal.

    
por 14.07.2016 / 13:17

Tags