Comando paralelo executado no linux

0

Eu estava usando o seguinte script bash para executar vários comandos em paralelo. Na verdade, aguarda até que todos os comandos paralelos sejam concluídos e, em seguida, prossiga. Agora, eu quero mudar este bash de uma forma que aguarda apenas o primeiro "kill" e não importa que esse kill venha da execução do comando. Alguma sugestão para fazer isso?

for cmd in "$@"; do {
  echo "Process \"$cmd\" started";
  $cmd & pid=$!
  PID_LIST+=" $pid";
} done

trap "kill $PID_LIST" SIGINT

echo "Parallel processes have started";

wait $PID_LIST

echo
echo "All processes have completed";
    
por user192995 08.10.2013 / 20:32

1 resposta

0

Você pode detectar que um subprocesso terminou capturando o sinal SIGCHLD.

    
por zwets 08.10.2013 / 22:18