Linux – ionice process group

ionicelinuxniceposix

Is there an easy way to change the I/O priority of a whole group of processes the way renice -g does? It seems like only changing the I/O priority of a single process is supported by ionice. If this can't be done, can someone please point me to the the relevant API calls (I'm not at all familiar with the POSIX api) so that I can write a quick command line utility to implement this functionality myself?

Best Answer

You can make a script called gionice, like that:

#!/bin/sh
ps -s $1 -o pid | xargs ionice -c 2 -n 0 -p 

Then, you can call it like that, for process group id 3266, for example:

./gionice 3266

"ps -s PID -o pid" prints line-by-line identifiers of processes whose group leader is PID. Then, for every line, xargs appends that line after "ionice -c 2 -n 0 -p " and calls the resulting command.

Hope that helps.