Множество процессов в bash скрипте

Пример скрипта ниже позволяет создавать множество процессов внутри одного bash скрипта, показывать код возврата и выводить логи вывода после завершения задачи:

#!/usr/bin/env bash

# Do smth
for job in 1 2 3; do
  echo "Starting job #${job}"
  echo "Job done" > $job.log 2>&1 &
done

echo "Waiting for job results..."

FAIL=0
for job in $(jobs -p)
do
  wait "$job" || (( FAIL++ ))
  echo "Job PID #${job}  finished with code: $?"
done

for job in 1 2 3; do
  echo -e "\\n ======== Results for job #${job} ========"
  cat $job.log
done

if [ "$FAIL" != "0" ];
then
  exit 1
fi

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *