De man renice
:
Usuários que não sejam o superusuário podem alterar apenas a prioridade dos processos que possuem, e podem aumentar monotonicamente seu `` bom valor '' (por razões de segurança) dentro do intervalo de 0 a PRIO_MAX (20) [...]
Portanto, eu posso renice
meus próprios processos para cima (dar a eles menor prioridade), mas nunca para baixo:
$ renice 10 22316
22316 (process ID) old priority 0, new priority 10
$ renice 9 22316
renice: failed to set priority for 22316 (process ID): Permission denied
Por que é isso? Entendo por que usuários normais não podem definir valores agradáveis menores que 0, mas por que, como posso diminuir a prioridade para 10, não posso aumentá-la novamente para 9? Que "motivo de segurança" existe para isso? Tenho o direito de iniciar um processo com um valor agradável de 9, por que não posso renomeá-lo para 9?
Edição: eu deveria aprender a rolar para baixo. Acontece que isso está listado como um bug em man renice
:
BUGS
Non super-users can not increase scheduling priorities of their own
processes, even if they were the ones that decreased the priorities
in the first place.
Isso é ainda mais confuso. Se eles consideram esse comportamento um erro, por que não alterá-lo? O renice
comando apareceu no 4.0BSD, que eu acho que é de 1980. Isso deve ser muito fácil de corrigir, por um lado eles parecem ter optado por deixá-lo e, por outro, o listam como um bug.
Respostas:
Desde o linux 2.6.12, isso depende do valor do limite RLIMIT_NICE (
ulimit -e
). O que pode levar valores de 0 a 40. Esse limite é mais o limite da prioridade do processo (quanto maior esse número, maior a prioridade que um usuário pode definir para um processo).Você notará que o valor padrão é 20 no ubuntu 10.04 e 0 no Debian jessie, por exemplo.
Um valor
n
para esse limite significa que um processo sem o recurso CAP_NICE pode aumentar apenas uma prioridade do processo para atén
, o que significa diminuir a gentileza até uma gentileza de20 - n
. Portanto, para um valor 0, isso significa que nenhum usuário não privilegiado pode diminuir a gentileza abaixo de 20, portanto, nenhum usuário não privilegiado pode diminuir a gentileza.Com um valor de 20, usuários não privilegiados podem diminuir a gentileza de volta para 0.
Cabe ao administrador escolher se permite que os usuários reduzam sua prioridade de processo e em que nível, definindo o limite rígido para isso.
Quanto ao motivo pelo qual um administrador pode não querer que os usuários diminuam a prioridade do processo, consulte a resposta da Flup .
fonte
É pelo que eu chamaria de razões políticas . A ideia é que usuários normais não possam substituir as ações de usuários privilegiados.
Digamos que você seja um usuário em um enorme servidor compartilhado. Você está executando processos monstruosos de sobrecarga da CPU em detrimento dos outros usuários. O administrador de sistemas
renice
é alguns de seus processos porque ele não gosta muito de você. O sistema operacional não lembra quem fez orenice
procedimento, mas sabe que usuários normais não podem reverter a ação. Dessa maneira, o administrador do sistema tem controle sobre as prioridades do processo dos usuários normais.fonte
man renice
.renice
não pode ser revertido, exceto por um usuário privilegiado.renice
issoroot
fez.Estranho ? funciona para mim em
exemplo
2ª edição
Alterações de configuração
E eu sou membro do grupo de áudio, isso foi para reduzir a latência com jack / ardor e buffer xruns durante a gravação.
renice
fonte
cat /etc/lsb*
erenice --version
também.renice --version renice from util-linux-ng 2.17.2
mas ainda no AIX não é possível