Не думаю, что это твоя проблема.
Если производитель начинает позже, чем потребитель, ничего страшного.
Пример:
Окно 1
$ mkfifo foo.pipe
$ cat foo.pipe
(hangs)
Окно 2
$ echo 'something' > foo.pipe
Окно 1
something
(exits)
Возможно, ваша проблема в том, что один процесс потребляет выходные данные fifo, затем производитель завершает работу, а затем вы пытаетесь снова прочитать с fifo.
В таком случае он зависнет на неопределенное время.
например. после вышеуказанной последовательности:
Окно 1
$ cat foo.pipe
зависает, пока вы не запустите другой echo something > foo.pipe
.