preventing FIFO from EOF

rihad rihad at mail.ru
Fri Dec 12 07:48:10 PST 2008


Christoph Mallon wrote:
> rihad schrieb:
>> $ mkfifo /var/tmp/foo
>> $ buffer -i /var/tmp/foo                    # misc/buffer
>> # in another console:
>> $ echo hi > /var/tmp/foo
>>
>> buffer prints hi and exits. I want it to keep reading and printing 
>> indefinitely.
>>
>> Further experimentation revealed that I need two writers: one dummy 
>> writer that just keeps /var/tmp/foo open for writing, and the other 
>> doing the "real work". This way buffer wouldn't exit. But how to 
>> emulate the dummy writer? It itself needs to block on something to 
>> keep /var/tmp/foo open. Any clean way to do this in shell? Maybe the 
>> solution is quite simple but isn't at the tip of my tongue.
> 
> Maybe "tail -f" is what you are looking for.
> 
> 
You mean in place of buffer? buffer is there for a reason (so that 
writers never block).

Something as simple as this:
$ sh < /dev/null > /var/tmp/kick 2>/dev/null
seems to block indefinitely, but exits as soon as I run
$ buffer -i /var/tmp/foo
(and buffer exits too)


More information about the freebsd-hackers mailing list