Bir kullanıcının sistemde negatif bir değeri olan belirli bir işlemi çalıştırmasını istiyorum. Bu özel program bir minecraft sunucusu olduğu için işlemi arka plana çatallayamıyorum ve sunucuyu kontrol etmek için komut satırına güveniyorum.
Mevcut bash komut dosyam şöyle görünüyor (önemli kısım):
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
sleepbasitçe yürütülmesini geciktirir renice. renicekendisi pskullanıcının kendi kimliğini kullanarak bir java işlemi kontrol etmek için kullanır . Farklı kullanıcılar altında java yumurtlamanın başka örnekleri olabilir, ancak minecraft sunucusu kendi kullanıcı minecraft'ı altında çalışır .
Sunucuyu her başlattığımda bir şifre girmek istemiyorum.
den / etc / sudoers :
minecraft ALL = NOPASSWD: /etc/renice
Bunu yapmanın daha zarif bir yolu var mı? Sadece kullanmak nicebir seçenek değildir sudo nice bash, NOPASSWD ile birlikte : seçenek büyük bir güvenlik sorunu olacaktır.
nicegibi görünmüyor, her ikisini de ayarlamak zorunda kaldım-.