GNU Parallel:成功或失败时停止

Dan*_*ste 4 gnu-parallel

是否可以设置一个 -halt 条件(或多个 -halt 条件?),以便无论退出代码如何,如果其中任何一个作业失败,所有作业都将停止?

我想监视一个事件(我刚刚在负载平衡服务上单独触发)。我可以通过查看日志来确定事件是通过还是失败,但我必须同时查看多个服务器上的日志。完美的!平行吧!不过,我有一个额外的要求:我想根据日志结果返回成功或失败。

因此,如果并行作业中的任何一个检测到事件(即"-halt now"),我想停止并行作业,但我不知道检测是否会返回零或非零(这就是重点:我正在尝试找出该信息),所以两者"--halt now,success=1"都不"--halt now,fail=1"正确,我需要找出一种方法来做类似的事情"--halt now,any=1"

我查看了源代码,嗯,我的 perl 功夫不足以解决这个问题(看起来 exitstatus 在源代码的许多不同地方使用,所以我很难弄清楚这是否可行或不。)

请注意,,success=1两者,fail=1都工作得很好(给定相应的退出状态),但我不知道在并行运行之前它会成功还是失败。

小智 5

GNU Parallel 手册页说:

--halt now,done=1

当其中一项作业完成时退出。杀死正在运行的作业。

来源: https: //www.gnu.org/software/parallel/man.html(搜索--halt- 这是一个大页面)