假设我使用以下gnu parallel命令运行N个作业:
seq $N | parallel -j 0 --progress ./job.sh
我如何调用并行来杀死所有正在运行的作业,并且只要其中任何一个作业退出就不再接受?
答案 0 :(得分:4)
您可以使用--halt
:
seq $N | parallel -j 0 --halt 2 './job.sh; exit 1'
该解决方案的一个小问题是您无法判断job.sh
是否失败。
答案 1 :(得分:0)
您也可以使用killall perl
。这不是准确的方式,但容易记住