"kill -SIGTERM" irá parar "tail -f"?

"kill -SIGTERM" irá parar "tail -f"?

Tal como o título diz, o Google não me dá nada e não posso testá-lo neste servidor.

O comando é o seguinte:

tail -f <file> | fgrep --line-buffered "string" | sed -u 's/stuff//g' >> output.log

Preciso usar kill -SIGTERM <PID>ou kill -SIGKILL <PID>interromper um tail -f?

Responder1

  • SIGTERM envia um sinal ao comando e dirá ao comando para parar. Se houver necessidade de limpar arquivos devido ao kill, o comando pode fazer isso.
  • SIGKILL envia um sinal para o sistema init. O comando em si nem sequer é informado de que será morto.

Então você pode usar ambos; mas SIGTERM deve ser preferido (é mais elegante).

“kill -SIGTERM” irá parar “tail -f”?

Sim vai. No Linux tail atua no SIGTERM.

Responder2

Você nem precisa usar SIGTERM. tailescuta SIGINTe SIGQUITtambém. Não tenho certeza se há alguma diferença entre os sinais (é tudo específico tail), mas qualquer um deles seria melhor que SIGKILL.

Também é muito fácil testar:

$ tail -f /dev/null > /dev/null &
[1] 26599
$ kill -SIGINT $!
[1]+  Interrupt               tail -f /dev/null > /dev/null

informação relacionada