Tengo un script simple, que configura el registro, ejecuta tail -f en el archivo de registro y luego, después de salir de tail , realiza una limpieza. Básicamente algo como esto
echo 'monitoring started' tail -f /var/log/some.log echo 'never gets here' El problema es que salir de tail con Ctrl+C también interrumpe la ejecución del script, por lo que no se llama a la limpieza. ¿Hay alguna manera de salir 'correctamente' de la tail y reanudar la llamada del script? Encontré algunas soluciones basadas en guardar PID y eliminarlo por tiempo de espera, pero eso no es lo que quiero aquí, es posible que necesite el monitoreo durante unos minutos o unas horas, por lo que me gustaría tener un interruptor manual.
puedes hacer algo como esto
echo "monitoring started" tail -f /var/log/some.log & #execute tail in background read -sn 1 #wait for user input kill %1 #kill the first background progress, ie tail echo "Is reached"