Параллельная команда запускается в Linux

Я использовал следующий скрипт bash для параллельного запуска нескольких команд. На самом деле он ждет, пока все параллельные команды завершатся, а затем продолжит работу. Теперь я хочу изменить этот bash таким образом, чтобы он ожидал только первого «уничтожения», и не имеет значения, что это уничтожение происходит от выполнения какой команды. Любое предложение для этого?

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";
0
задан 8 October 2013 в 22:32

1 ответ

Вы можете обнаружить, что подпроцесс завершился, перехватывая сигнал SIGCHLD.

0
ответ дан 8 October 2013 в 22:32

Другие вопросы по тегам:

Похожие вопросы: