Je cherche quelque chose que je soupçonne n'existe pas: Un tube nommé non bloquant (fifo) à utiliser depuis la ligne de commande. Une telle chose existe t elle?
Voici le cas d'utilisation: Supposons que j'ai un processus qui va s'exécuter longtemps en arrière-plan et qui génère beaucoup de sortie stdout
. Je ne me soucie pas vraiment de la sortie et je ne veux pas la stocker (peut-être que je n'ai pas assez de place pour), mais je voudrais "entrer" périodiquement et suivre ce qu'elle fait, puis abandonner à nouveau et le laisser faire son travail. Je voudrais donc rediriger sa sortie vers ce canal nommé théorique tamponné et non bloquant, puis y puiser périodiquement.
Donc, fondamentalement, je veux commencer comme ça ( 10M
étant la taille du tampon):
mkmagicfifo magicfifo 10M
spewingprocess > magicfifo &
... et venez régulièrement voir ce qui se passe ...
tail -f magicfifo
... sans magicfifo
stocker toute la sortie (donc, pas un fichier normal), et sans qu'il bloque le processus de crachat quand il se remplit et n'est pas tapé (donc, pas tout à fait un tube nommé normal).
Je ne pense pas que les solutions impliquent tail
ou le prune
feront (enfin, je peux penser à une solution de contournement impliquant tail
), car il tail
faudrait toujours que je stocke toutes les données quelque part (si je veux entrer et sortir de la regarder), et prune
doit réécrire le fichier, vraisemblablement (j'admets que je n'ai pas essayé / prouvé cela) rompant la redirection du processus générant toute la sortie.
Je m'attends à ce que je puisse écrire un utilitaire pour le faire, mais * nix a tellement d' aspects sympas des fichiers et des tuyaux et ainsi de suite, je ne peux pas m'empêcher de penser que cela existe et je ne le sais pas.
Donc: existe-t-il une telle chose, et si oui, qu'est-ce que c'est?