我使用一个脚本来运行多个python和shell脚本。
很少有人使用&并行运行。我的要求是跟踪这个并行运行任务的进度,并显示它,我想得到脚本的退出代码,如果任何脚本在执行日志中失败,它会说脚本-1/2/3由于x原因而失败。在
我尝试使用下面的代码集。每件事都在进行串行处理,但是
对于并行处理命令,我得到最后执行进程Id:#!/bin/bash
LOG_DIR_LOC=$1
export python_path='/usr/bin/python'
export log_file=${LOG_DIR_LOC}/log_parallel_exec_`date "+%d-%m-%Y_%H:%M:%S"`.log
export script1='/home/test-arg.py'
export script2='/home/parallel.py'
export script3='/home/test.sh'
pids=""
echo -ne '#.................................................................................................... (1%)\r'
sleep .5
${python_path} ${script1} a b >> ${log_file} 2>&1 &
pids+=($!)
echo -ne '#################################################.................................................... (40%)\r'
sleep .5
${python_path} ${script2} c d >> ${log_file} 2>&1 &
pids+=($!)
echo -ne '###############################################################################...................... (70%)\r'
sleep .5
sh ${script3} >> ${log_file} 2>&1 &
pids+=($!)
echo -ne '##################################################################################################.... (98%)\r'
sleep .5
wait
if [ $? -eq 0 ]; then
echo "SUCCESS - Job exited with a status of $?" >> ${log_file} 2>&1
else
echo "FAILED - Job exited with a status of $?" >> ${log_file} 2>&1
fi
done
echo -ne '##################################################################################################### (100%)\r'
sleep .5