Execute 2 comandos em paralelo, mas espere apenas que um comando termine antes de iniciar o próximo

2

Eu configurei vários processos em segundo plano que precisam concluir o processamento antes que o próximo processo possa ser iniciado. Embora eu tenha configurado, há uma etapa em que dois programas precisam ser iniciados ao mesmo tempo, mas eu preciso apenas que um deles seja concluído para que as próximas etapas sejam executadas. Eu não preciso do segundo programa para terminar o próximo passo.

prog1 prog2

prog3

O que eu preciso é que o prog3 comece quando o prog1 terminar, deixando o prog2 continuar rodando. Isso é possível? Qualquer coisa que eu tentei está esperando que o prog2 termine o processamento antes de iniciar o prog3.

    
por Ciarán 16.03.2017 / 16:14

2 respostas

3

prog2 & (prog1 ; prog3) &
    
por 16.03.2017 / 16:45
1
prog1 &; pid1=$!; prog2 &; wait $pid1; prog3
    
por 16.03.2017 / 16:23