【问题标题】:Parallel Processing from Shell ScriptShell 脚本的并行处理
【发布时间】:2018-08-09 13:06:59
【问题描述】:

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

    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 unix parallel-processing


    【解决方案1】:

    对于 shell 的并行处理,请使用所有主要发行版中提供的 GNU Parallel。检查https://stackoverflow.com/a/6789085/2235381https://www.gnu.org/software/parallel/

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多