我正在使用GNU Parallel运行多个程序实例,每个实例都需要在辅助内存中占用一些空间。碰巧的是,稍后在我当前的设置中,所有实例都会因错误退出,因为设备上没有剩余空间。
如果设备使用率低于90%,如何设置GNU Parallel才能运行下一个作业?我可以使用df
命令获取设备使用情况:df --output=pcent "$PWD" | sed '1d;s/[^0-9]//g'
答案 0 :(得分:2)
您可以使用以下功能:
#!/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