← retour aux snippets

mkfifo: pipe nommée pour relier des processus

Créer une FIFO sur disque et connecter producteurs/consommateurs asynchrones.

bash process #mkfifo#fifo#pipe

objectif

Découpler des étapes de traitement sans fichiers temporaires intermediaires lourds.

code minimal

mkfifo /tmp/queue
producer > /tmp/queue &
consumer < /tmp/queue

utilisation

# compresser à la volée sans fichier intermédiaire
mkfifo /tmp/pipe.zst
( tar -C ./data -cf - . > /tmp/pipe.zst ) &
zstd -19 -o backup.tar.zst < /tmp/pipe.zst
rm -f /tmp/pipe.zst

variante(s) utile(s)

# multiples consommateurs (copie avec tee)
mkfifo /tmp/f; (echo "data" > /tmp/f &) ; tee copy1.txt copy2.txt < /tmp/f >/dev/null

notes

  • une FIFO bloque tant qu’un lecteur/écrivain n’est pas prêt.
  • nettoyez la FIFO après usage.