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:
-
0
significa "você pode aumentar a gentileza para 20", a.k.a. inútil; -
20
significa "você pode aumentar a bondade para 0", o que permite voltar para 0 se você diminuiu sua prioridade; -
40
significa "você pode iniciar processos aténice -n -20
.