On 15/02/15 11:14, Pádraig Brady wrote: > On 14/12/12 14:33, Pádraig Brady wrote: >> tag 13183 + notabug >> close 13183 >> stop >> >> On 12/14/2012 02:04 PM, Ruediger Meier wrote: >>> Hi, >>> >>> I want to use tail and grep to follow a file until a particular pattern >>> appears. But tail does not exit when grep is finished. >>> >>> $ echo xxx > /tmp/blabla >>> $ tail -f /tmp/blabla |grep -m1 --line-buffered "xxx" >>> xxx >>> >>> Now tail still tries to read and exits only if I write again >>> into /tmp/blabla. >>> >>> Is this how it's supposed to be? >> >> tail does exit on SIGPIPE, however it will >> only get the signal on write(), and so you >> need to get more data in the file before tail will exit. > > It's a fair point though that tail, since it > can hang around forever should take special > steps to be responsive to the other end of the pipe going away. > I.E. it might use select() or poll(POLLHUP), to detect > immediately/periodically the other end of the pipe going away.
Implemented in: https://git.sv.gnu.org/cgit/coreutils.git/commit/?id=v8.27-42-gce0415f cheers, Pádraig
