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
. tail
escucha SIGINT
y SIGQUIT
tambié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