运行 下一个作业仅在用户定义的条件为真时才使用 GNU Parallel

Run next job using GNU Parallel only if user defined condition is true

我正在使用 GNU Parallel 运行创建多个程序实例,每个实例都需要一些 space 辅助内存。碰巧的是,在我当前的设置中,所有实例都以错误退出,因为设备上没有 space。

如何仅在设备使用率低于 90% 时将 GNU Parallel 设置为 运行 下一个作业?我可以使用 df 命令获取设备使用情况:df --output=pcent "$PWD" | sed '1d;s/[^0-9]//g'

您可以使用这样的函数:

#!/bin/bash

# define a function which "parallel" will call
doit() {
   # wait forever for sufficient resources
   while :; do
      pcnt=$(df --output ...)
      [ $pcnt -lt 90 ] && break
      sleep 5
   done
   # do job now as resources are available

}

# export function to subshells started by "parallel"
export -f doit

# start "parallel" - probably one of 3 methods:
#   parallel -a jobs.txt doit
#   parallel doit ::: jobs
#   generate_jobs | parallel doit