Uma maneira de distinguir entre saída intercalada de dois processos em segundo plano

4

Se eu tiver dois processos em segundo plano que produzem entrada para STDOUT ou STDERR (por exemplo, dois scripts de instalação), há uma maneira fácil de distinguir esses dois fluxos de saída? Eu acho que posso canalizar a saída de cada processo através de um programa sed que prefixa cada linha de cada saída com uma tag diferente, mas estou procurando algo mais fácil.

    
por dan 11.02.2015 / 20:32

1 resposta

1

A solução mais fácil seria iniciar cada uma das duas tarefas em segundo plano e redirecionar sua saída para arquivos:

 utility1 >utility1.out 2>utility1.err &
 utility2 >utility2.out 2>utility2.err &

Isso tem o benefício adicional de não obstruir o terminal com saída.

Você pode obviamente redirecionar os fluxos de erro e de saída para o mesmo arquivo também:

 utility1 >utility1.out 2>&1 &
 utility2 >utility2.out 2>&1 &

Você também pode usar tmux :

 tmux new "utility1" ';' split "utility2"

tmux sairá assim que todos os comandos tiverem saído. Para evitar isso, altere "utility" para "utility;read" . Isso fará com que o painel fique aberto até você pressionar Enter .

    
por 04.09.2017 / 11:38