【问题标题】:Run next job using GNU Parallel only if user defined condition is true仅当用户定义的条件为真时才使用 GNU Parallel 运行下一个作业
【发布时间】:2017-08-03 05:25:53
【问题描述】:

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

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

【问题讨论】:

    标签: linux gnu-parallel


    【解决方案1】:

    你可以使用这样的函数:

    #!/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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2020-12-25
      • 1970-01-01
      • 2021-07-02
      • 2015-01-17
      相关资源
      最近更新 更多