[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cannot "tail -F" multiple pipe files or streams?
From: |
Pádraig Brady |
Subject: |
Re: Cannot "tail -F" multiple pipe files or streams? |
Date: |
Mon, 11 Sep 2017 09:36:03 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 11/09/17 09:34, Pádraig Brady wrote:
> On 11/09/17 01:52, Andrey Utkin wrote:
>> Hi,
>>
>> Seems tail from coreutils 8.27 (as installed by Gentoo) doesn't handle
>> the usecase of following more than one i/o stream or pipe file, e.g.
>>
>> tail -F -c +0 \
>> <(while true; do date; sleep 1; done) \
>> <(while true; do date +%s; sleep 1; done)
>>
>> Prints output of just first sub-script.
>>
>> This has been described at length here:
>>
>> https://superuser.com/questions/1243634/how-to-tail-multiple-pipe-files-or-streams
>>
>> Is it really a bug? Or is my expectation wrong? If that's bug, I am
>> happy to file a proper bugreport and maybe even debug it and make a
>> patch.
>
> I confirmed the latest version has the same behavior,
> with and without inotify.
> I''ve not dug in, but I presume it's because tail will read the full
> file up front (to get to the tail of it), and so will continue to
> read from the first, before it considers subsequent files.
> I don't know off the top of my head how to support this use case.
> There was a related warning that was adjusted recently.
> http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=v8.27-43-gaab875a
> We might adjust that to fire in more cases like this mulitple pipe case?
Oh I wonder might we skip the initial blocking reads in the case where
whe're outputting everything? I.E. for -c+0 and equivalent.