Estoy buscando algo que sospecho que no existe: una tubería con nombre sin búfer bloqueada (fifo) para usar desde la línea de comandos. ¿Hay tal cosa?
Este es el caso de uso: supongamos que tengo un proceso que se ejecutará mucho tiempo en segundo plano y arrojará una gran cantidad de resultados stdout
. Realmente no me importa el resultado y no quiero almacenarlo (tal vez no tengo suficiente espacio para hacerlo), pero me gustaría "ingresar" periódicamente y seguir lo que está haciendo, luego abandonarlo nuevamente y deja que haga su trabajo. Por lo tanto, me gustaría redirigir su salida a esta tubería con nombre teóricamente protegida y sin bloqueo y luego aprovecharla periódicamente.
Entonces, básicamente, quiero comenzar así ( 10M
siendo el tamaño del búfer):
mkmagicfifo magicfifo 10M
spewingprocess > magicfifo &
... y visita periódicamente lo que sucede ...
tail -f magicfifo
... sin magicfifo
almacenar toda la salida (por lo tanto, no es un archivo normal), y sin que bloquee el proceso de vomitar cuando se llena y no se toca (por lo tanto, no es una tubería con nombre normal).
No creo que las soluciones involucren tail
o prune
lo hagan (bueno, puedo pensar en una solución alternativa que involucre tail
), porque tail
aún requeriría que almacene todos los datos en algún lugar (si quiero entrar y dejar de mirarlo), y prune
tiene que reescribir el archivo, presumiblemente (admito que no lo he probado / probado) rompiendo la redirección del proceso que genera toda la salida.
Espero poder escribir alguna utilidad para hacer esto, pero * nix tiene muchos aspectos geniales de archivos y tuberías y tal, simplemente no puedo evitar pensar que esto existe y simplemente no lo sé.
Entonces: ¿Existe tal cosa, y si es así, qué es?