Quiero que un usuario ejecute un proceso específico en el sistema con un buen valor negativo. No puedo simplemente bifurcar el proceso a un segundo plano, ya que este programa específico es un servidor de Minecraft y confío en la línea de comando para controlar el servidor.
Mi script bash actual se ve así (la parte importante):
sleep 10 && \
sudo renice -n $NICENESS $(ps -u $(id -u) -o "%p:%c" | sed -n "s/:java$//p") & \
java -Xmx8G -Xms2G -jar minecraft_server.jar nogui
sleep
simplemente retrasa la ejecución de renice
. renice
se utiliza ps
para verificar si hay un proceso de Java utilizando la identificación propia del usuario. Puede haber otras instancias de desove de Java bajo diferentes usuarios, pero el servidor de Minecraft se ejecuta bajo su propio usuario Minecraft .
Obviamente no quiero ingresar una contraseña cada vez que inicio el servidor.
de / etc / sudoers :
minecraft ALL = NOPASSWD: /etc/renice
¿Hay alguna forma más elegante de hacer esto? Simplemente usar nice
no es una opción, sudo nice bash
en combinación con NOPASSWD: la opción sería un gran problema de seguridad.
nice
no parece hacerlo, tuve que establecer ambos, usando-
.