Я хочу проверить, сколько времени занимает весь процесс, когда он разделен на 3,4,5 или более параллельных процессов. Мне нужно отображать и регистрировать каждый процесс разделения. Я написал / позаимствовал скрипт для запуска 3 дочерних процессов, которые спят; родительский процесс должен wait $PID
перед продолжением, НО я не могу заставить эту часть работать, любая помощь приветствуется? так вот код multi_load. sh
#!/bin/bash
WORK_DIR=`pwd`
echo ${WORK_DIR}
pids=();
for((i=0;i<3;i++));
do
mate-terminal --window --command "$WORK_DIR/sl.sh $i" &
echo "process $! $? " ;
pids+=( $! );
done;
echo "Array ${pids[@]}" ;
for pid in ${pids[@]};
do
echo "Check ${pid}" ;
wait ${pid}; # THIS IS NOT WORKING
echo ret=$?;
done;
echo "finish";
exit
sl. sh
#!/bin/bash
#exec >&1 | tee slp-${1}\.log
exec &> >(tee -a "slp-${1}.log")
echo "sleep $1" ;
new_time=$((($1*3)+15)) ;
echo "new $new_time" ;
sleep $new_time ;
exit $(($1+42)) ;
Подведем итоги;
- родительский процесс не дожидается завершения дочерних процессов перед выходом
- Мне нужен секундомер, чтобы наглядно показать затраченное время Заранее спасибо!