Na verdade, RLIMIT_NICE permite que você ignore a regra básica que diz que "um processo pode elevar seu valor interessante somente se pertencer a raiz".
Demonstração:
# ulimit -e 30
# su nobody
$ nice -n -10 top
Você verá que o processo top é executado com niceness -10 .
Agora, se você tentar nice -n -11 top , ele será executado com niceness 0 , porque -11 não é permitido por RLIMIT_NICE=30 .
A fórmula é dada na manpage: a máxima niceness permitida é 20-rlimit . Então:
-
0significa "você pode aumentar a gentileza para 20", a.k.a. inútil; -
20significa "você pode aumentar a bondade para 0", o que permite voltar para 0 se você diminuiu sua prioridade; -
40significa "você pode iniciar processos aténice -n -20.