当其中任何一个作业终止时,如何停止gnu并行作业?

时间:2014-01-24 00:10:05

标签: gnu-parallel

假设我使用以下gnu parallel命令运行N个作业:

seq $N | parallel -j 0 --progress ./job.sh

我如何调用并行来杀死所有正在运行的作业,并且只要其中任何一个作业退出就不再接受?

2 个答案:

答案 0 :(得分:4)

您可以使用--halt

seq $N | parallel -j 0 --halt 2 './job.sh; exit 1'

该解决方案的一个小问题是您无法判断job.sh是否失败。

答案 1 :(得分:0)

您也可以使用killall perl。这不是准确的方式,但容易记住