Como matar - suavemente? [duplicado]

5

Se eu quiser matar um processo da forma mais cuidadosa e educada possível,
quais sinais devo usar em um comando kill, em que ordem?

Eu gostaria de dar ao programa qualquer tipo de tempo para limpar, se ele quiser, então apenas enviar um SIGTERM será difícil, eu acho?

Vou usar SIGKILL (" -9 ") por último, está claro.

Mas qual começar? %código%? Quais sinais são apenas uma perda de tempo?

Os sinais relevantes para referência, de

SIGHUP

  Signal     Value     Action   Comment
   ──────────────────────────────────────────────────────────────────────
   SIGHUP        1       Term    Hangup detected on controlling terminal
                                 or death of controlling process
   SIGINT        2       Term    Interrupt from keyboard
   SIGQUIT       3       Core    Quit from keyboard
   SIGKILL       9       Term    Kill signal
   SIGPIPE      13       Term    Broken pipe: write to pipe with no
                                 readers
   SIGTERM      15       Term    Termination signal
    
por Volker Siegel 29.07.2014 / 17:05

1 resposta

8

SIGTERM é o caminho a percorrer na minha opinião. Tem trabalhos na maioria dos casos. Aquelas em que isso não funcionará, você terá que fazer um SIGKILL de qualquer maneira. O SIGTERM oferece ao processo uma oportunidade suficiente para liberar todos os recursos necessários e encerrá-lo de forma limpa.

    
por 29.07.2014 / 17:15