Ubuntu10.04でマルチスレッドプロセスをrenice
し、結果をtop
で表示すると、実際にはメインスレッドのみがリニックされているようです。他のすべてのスレッドは、古いニース値を保持します。メインスレッドだけでなく、プロセス内のすべてのスレッドを削除する最も簡単な方法は何ですか?
renice +/-n -g gid
ここで、gid
は、ps -Aj
で見つけることができるプロセスグループIDです。
Zhihuiの答えに触発されて、私が実際に使用したもの:
renice -n <niceness> -p `ps --no-heading -Lo tid <PID>`
次のコマンドは、プロセス「procid」内のすべてのスレッドに対して、Nice値を+15に設定できます。
ps --no-heading -Lj <procid> | awk '{system("renice +15 "$4)}'