提交具有层次结构的并行 unix 作业

Submitting parallel unix jobs with hierarchy

我需要 运行 3 个工作,条件如下 -

  1. job2 取决于 job1.

  2. job3 可以 运行 独立于 job1job2.

  3. job4 应该仅在 job2job3 都完成时才开始。

我可以 运行 (job1; job2) 确保作业 2 在作业 1 之后 运行 秒。一次启动所有作业以最大限度地利用并行化的最佳方法是什么?

像这样:

#!/bin/bash
job1 &    # Start job1 ASAP as independent
pid1=$!
job3 &    # Start job3 ASAP as independent
pid3=$!
wait $pid1
job2 &
wait $pid2 $pid3
job4