wait
バックグラウンドプロセスのPIDを取得する必要があります。
perf stat taskset -c 0 runspec &
pid=$!
perf stat taskset -c 1 runspec
wait $pid
perf stat taskset -c 0 runspec &
pid=$!
perf stat taskset -c 1 runspec
wait $pid
明らかに、これは少し追加のリファクタリングを行うことでよりエレガントになります。おそらくこのように:
parallel () {
local pid
# Danger: unquoted interpolation
$1 &
pid=$!
# Danger: unquoted interpolation
$2
wait $pid
}
prun () {
perf stat taskset -c $1 runspec
}
parallel "prun 0" "prun 1"
parallel "prun 0" "prun 1"
関数が二重引用符なしで補間parallel
することに注意してください。このおもちゃのデモンストレーションでは、それは無害ですが、引数として引用符で囲まれた文字列を渡す必要がある場合は、より複雑なソリューションが必要になります。$1
$2