Os processos são iniciados ao mesmo tempo e serão executados simultaneamente, mas eles não precisam parar ao mesmo tempo. O shell considerará que todo o pipeline foi encerrado (e exibirá um novo prompt) quando os processos ambos tiverem terminado.
Se command2
terminar antes de command1
(ou fechar seu fluxo de entrada padrão) e command1
tentar gravar a saída, não haverá nenhum lugar para essa saída. Então, command1
receberá um sinal SIGPIPE
, cuja ação padrão é anular command1
. Mas o próprio command1
pode substituir esse padrão, de modo que ele continue a ser executado. Nesse caso, suas tentativas de gravar a saída produzirão um erro de E / S comum ( EPIPE
) ao qual ele pode reagir do modo que quiser.