1
我正在運行使用GNU Parallel的程序的幾個實例,每個實例都需要一些輔助內存空間。發生這種情況後,在我當前的設置中,所有實例都會因錯誤而退出,因爲設備上沒有剩餘空間。只有在用戶定義的條件爲真時才使用GNU Parallel運行下一個作業
僅當設備使用率低於90%時,如何設置GNU並行才能運行下一個作業? df --output=pcent "$PWD" | sed '1d;s/[^0-9]//g'
我正在運行使用GNU Parallel的程序的幾個實例,每個實例都需要一些輔助內存空間。發生這種情況後,在我當前的設置中,所有實例都會因錯誤而退出,因爲設備上沒有剩餘空間。只有在用戶定義的條件爲真時才使用GNU Parallel運行下一個作業
僅當設備使用率低於90%時,如何設置GNU並行才能運行下一個作業? 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
我可以使用
df
命令,在設備使用