linux - 运行并行进程,如果失败则全部退出

标签 linux bash shell gnu

我有这段代码,可以并行启动 make t1make t2make t3

有没有一种方法可以在一个失败时终止其余的 make 进程?例如,如果 make t2 失败,脚本应该终止其他 2 个运行(make t1make t3)然后出来。

for ARG in '"t1" "t2" "t3"'
do
   cd ${ARG}
   make ${ARG} & pid=$!
   PID_LIST+=" $pid";
   cd -
done
trap "kill $PID_LIST" SIGINT
echo "Parallel makes have started $PID_LIST"
wait $PID_LIST

最佳答案

使用 GNU Parallel

parallel --halt now,fail=1 'cd {}; make {}' ::: t1 t2 t3

关于linux - 运行并行进程,如果失败则全部退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43186171/

相关文章:

java - JUnit 在 Linux 上安装失败

c - 在非实时操作系统/内核上执行接近实时任务的最佳方法是什么?

linux - 奇怪的文件 : *. dll.a * .la 它们是什么? (VLC windows build)如果可能的话如何在Windows上使用它们?

bash - 如何根据可用空间调整进度条的大小?

shell - 需要使用批处理/Windows 命令行枚举未知的注册表项

linux - 通过命令 shell 脚本使用 tshark 进行转换

linux - 用于复制、重命名和更改文件所有者权限的 Shell 脚本

linux - 如何替换文件中的字符串

bash - 在 bash 中重命名文件,保持原件不变

linux - rclone 在启动时通过 bashrc 自动挂载卷