Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell脚本的并行处理_Shell_Unix_Parallel Processing - Fatal编程技术网

Shell脚本的并行处理

Shell脚本的并行处理,shell,unix,parallel-processing,Shell,Unix,Parallel Processing,我需要从unixshell脚本中调用并行线程中的Java程序,并等待所有线程完成。然后应捕获每个线程的返回状态(1或0)。如果所有并行线程都成功,unix脚本将返回SUCCESS,否则如果 至少有一个线程出错,然后返回FAIL。 我在谷歌上找到了这段代码片段,它与我所寻找的内容非常相关 for count in {1..10} do call_process $count $runid & JPID="$JPID $!" done

我需要从unixshell脚本中调用并行线程中的Java程序,并等待所有线程完成。然后应捕获每个线程的返回状态(1或0)。如果所有并行线程都成功,unix脚本将返回SUCCESS,否则如果 至少有一个线程出错,然后返回FAIL。 我在谷歌上找到了这段代码片段,它与我所寻找的内容非常相关

    for count in {1..10}
    do
        call_process $count $runid &
        JPID="$JPID $!"
    done
    for pid in $JPID; do
        wait $pid || let 'RESULT+=1'
        echo "RESULT - $RESULT"
    done

function call_process {
    java -Djava.security.egd=file:/dev/urandom -Xmx8192M -Dfile.encoding=ISO-8859-1 com.load.MainProg $1 $2
}

但是这里没有捕获Java过程的结果。是否可以捕获每个进程id的java返回状态?

对于shell的并行处理,请使用所有主要发行版中提供的GNU并行。检查和