grep
provavelmente sai após a primeira partida. É xinput
que ainda está em execução: ele apenas percebe que o pipe está fechado na próxima vez que tentar gerar algo.
Por exemplo, aqui apenas o primeiro pgrep encontra um processo em execução de grep
, mas o sono do lado esquerdo ainda acontece.
$ ( pgrep grep >&2; echo xxx; pgrep grep >&2; sleep 3; echo yyy ) |grep -m1 xxx
29149
xxx