Sto cercando qualcosa che sospetto non esista: una pipe di nome buffer (non bloccata) non bloccabile da utilizzare dalla riga di comando. C'è una cosa del genere?
Ecco il caso d'uso: supponiamo che io abbia un processo che durerà a lungo in background e spargerà molto output stdout
. Non mi interessa davvero l'output e non voglio memorizzarlo (forse non ho abbastanza spazio per), ma mi piacerebbe "entrare" periodicamente e seguire ciò che sta facendo, quindi abbandonare di nuovo e lasciarlo fare il suo lavoro. Quindi mi piacerebbe reindirizzare il suo output a questa teorica pipe bufferizzata, non bloccante, e poi attingere periodicamente.
Quindi in pratica voglio iniziare in questo modo ( 10M
essendo la dimensione del buffer):
mkmagicfifo magicfifo 10M
spewingprocess > magicfifo &
... e periodicamente entrare per vedere cosa sta succedendo ...
tail -f magicfifo
... senza magicfifo
archiviare tutto l'output (quindi, non un file normale), e senza che blocchi il processo di sputa quando si riempie e non viene toccato (quindi, non è un normale pipe chiamato).
Non penso che le soluzioni coinvolgano tail
o prune
lo faranno (beh, posso pensare a una soluzione alternativa che coinvolga tail
), perché tail
richiederei comunque di archiviare tutti i dati da qualche parte (se voglio entrare e uscire dal guardarli), e prune
deve riscrivere il file, presumibilmente (ammetto di non aver provato / provato questo) interrompendo il reindirizzamento del processo generando tutto l'output.
Mi aspetto di poter scrivere qualche utilità per farlo, ma * nix ha così tanti aspetti interessanti di file e pipe e simili, non posso fare a meno di pensare che questo esista e semplicemente non lo so.
Quindi: esiste una cosa del genere, e in caso affermativo che cos'è?