31 lines
576 B
Bash
31 lines
576 B
Bash
#!/bin/zsh
|
|
|
|
idle() {
|
|
local f
|
|
f=$(type "$1")
|
|
case "$f" in
|
|
"$1 is /"*) z-idle-ext "$@" ;;
|
|
*) z-idle-int "$@" ;;
|
|
esac
|
|
}
|
|
|
|
z-idle-ext() {
|
|
local -a s
|
|
s+=( $(z-alt-find 'nice -n +40') )
|
|
s+=( $(z-alt-find 'chrt -i 0' ) )
|
|
s+=( $(z-alt-find 'ionice -c 3') )
|
|
command ${s[@]} "$@"
|
|
}
|
|
|
|
z-idle-int() {
|
|
## execute in subshell
|
|
(
|
|
{
|
|
command renice -n +40 -p ${sysparams[pid]}
|
|
command chrt -i -p 0 ${sysparams[pid]}
|
|
command ionice -c 3 -p ${sysparams[pid]}
|
|
} </dev/null &>/dev/null
|
|
"$@"
|
|
)
|
|
}
|