Aix

如何在 AIX 中像 xargs 一樣使用“–max-procs”來創建程序隊列?

  • September 23, 2015

考慮一個簡單的處理隊列,例如:

cat list.txt | xargs -n1 -P20 process.sh 

-P 或 –max-procs)

如何在 AIX 中有類似的東西?

你可以通過用 ksh 腳本替換你的 xargs 來模擬同樣的事情。例如:

#!/bin/ksh
nproc=0 max=20
trap 'let nproc--' sigchld
while read file
do    while [ $nproc -ge $max ]
     do sleep 1
     done
     process.sh "$file" &
     let nproc++
done
wait

shell 變數nproc計算它在後台執行的程序數。當程序結束時,shell 會擷取 SIGCLD 信號以遞減變數。睡眠輪詢循環停止的次數多於max正在啟動的程序。

引用自:https://unix.stackexchange.com/questions/231578