De man renice
:
Los usuarios que no sean el superusuario solo pueden alterar la prioridad de los procesos que poseen, y solo pueden aumentar monotónicamente su `` buen valor '' (por razones de seguridad) dentro del rango de 0 a PRIO_MAX (20) [...]
Entonces, puedo renice
mis propios procesos hacia arriba (darles una prioridad más baja) pero nunca hacia abajo:
$ 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 qué es esto? Puedo entender por qué los usuarios normales no pueden establecer valores agradables inferiores a 0, pero ¿por qué si puedo disminuir la prioridad a 10 no puedo aumentarlo nuevamente a 9? ¿Qué "razón de seguridad" hay para esto? Tengo derecho a iniciar un proceso con un buen valor de 9, entonces, ¿por qué no puedo cambiarlo a 9?
EDITAR: debería aprender a desplazarme hacia abajo. Resulta que esto aparece como un error en 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.
Eso es aún más confuso. Si consideran que este comportamiento es un error, ¿por qué no cambiarlo? El renice
comando apareció en 4.0BSD, que creo que es de 1980. Esto debería ser muy fácil de solucionar, por un lado, parecen haber optado por dejarlo y, por otro, lo enumeran como un error.
Respuestas:
Desde linux 2.6.12, eso depende del valor del límite RLIMIT_NICE (
ulimit -e
). Que puede tomar valores de 0 a 40. Ese límite es más el límite de la prioridad del proceso (cuanto mayor es ese número, mayor es la prioridad que un usuario puede establecer para un proceso).Notará que el valor predeterminado es 20 en ubuntu 10.04 y 0 en Debian jessie, por ejemplo.
Un valor de
n
ese límite significa que un proceso sin la capacidad CAP_NICE solo puede aumentar la prioridad de un proceso hastan
, lo que significa disminuir la simplicidad a una simplicidad de20 - n
. Entonces, para un valor de 0, eso significa que ningún usuario no privilegiado puede reducir la simpatía por debajo de 20, por lo que ningún usuario no privilegiado puede disminuir la simpatía.Con un valor de 20, los usuarios sin privilegios pueden disminuir la simpatía a 0.
Depende del administrador elegir si permiten a los usuarios reducir la prioridad de su proceso y a qué nivel estableciendo el límite estricto para eso.
En cuanto a por qué un administrador puede no querer que los usuarios reduzcan la prioridad de su proceso, consulte la respuesta de Flup .
fuente
Es por lo que yo llamaría razones de política . La idea es que los usuarios normales no pueden anular las acciones de los usuarios privilegiados.
Digamos que eres un usuario en un enorme servidor compartido. Está ejecutando procesos monstruosos de acaparamiento de CPU en detrimento de los demás usuarios. El administrador de sistemas
renice
es uno de sus procesos porque no le quiere mucho. El sistema operativo no recuerda quién hizo elrenice
, pero sí sabe que los usuarios normales no pueden revertir la acción. De esta manera, el administrador del sistema tiene control sobre las prioridades de proceso de los usuarios normales.fuente
man renice
.renice
no puede revertirse excepto por un usuario privilegiado.renice
Esoroot
hizo.Extraño? me funciona en
ejemplo
2da edición
Cambios de configuración
Y soy miembro del grupo de audio, esto fue para reducir la latencia con jack / ardor y buffer xruns durante la grabación.
re bueno
fuente
cat /etc/lsb*
yrenice --version
también.renice --version renice from util-linux-ng 2.17.2
pero todavía en AIX no es posible