¿"kill -SIGTERM" detendrá "tail -f"?

¿"kill -SIGTERM" detendrá "tail -f"?

Tal y como dice el título, Google no me da nada y no puedo probarlo en este servidor.

El comando es el siguiente:

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

¿Necesito usar kill -SIGTERM <PID>o kill -SIGKILL <PID>detener un tail -f?

Respuesta1

  • SIGTERM envía una señal al comando y le indicará que se detenga. Si es necesario limpiar archivos debido a la eliminación, el comando puede hacerlo.
  • SIGKILL envía una señal al sistema de inicio. Al comando en sí ni siquiera se le dice que lo van a matar.

Entonces puedes usar ambos; pero debería preferirse SIGTERM (es más elegante).

¿”kill -SIGTERM” detendrá “tail -f”?

Sí, lo será. En Linux, la cola actúa sobre SIGTERM.

Respuesta2

Ni siquiera tienes que usar SIGTERM. tailescucha SIGINTy SIGQUITtambién. No estoy seguro de si hay alguna diferencia entre las señales (todas son específicas de tail), pero cualquiera de ellas sería mejor que SIGKILL.

También es bastante fácil de probar:

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

información relacionada